为什么 visual studio 中的调试版本和发布版本的代码覆盖率结果不同

why code coverage result is different in debug and release versions in visual studio

我在 Visual Studio 2013 年工作。

我的构建和 运行 UT 是成功的。

但是当我看到代码覆盖率结果时,Debug 版本显示 83%,Release 版本显示 70%。

为什么会出现如此大的差异,解决方案是什么?

为发布编译代码意味着编译器将执行更积极的优化,例如内联函数、修剪无法访问的路径等。这通常意味着您在最终可执行文件中留下的代码更少。

如果此代码 "removal" 主要发生在恰好覆盖良好的代码区域,而较少发生在覆盖较少的代码区域,则整体覆盖率将会降低。