为什么 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" 主要发生在恰好覆盖良好的代码区域,而较少发生在覆盖较少的代码区域,则整体覆盖率将会降低。
我在 Visual Studio 2013 年工作。
我的构建和 运行 UT 是成功的。
但是当我看到代码覆盖率结果时,Debug 版本显示 83%,Release 版本显示 70%。
为什么会出现如此大的差异,解决方案是什么?
为发布编译代码意味着编译器将执行更积极的优化,例如内联函数、修剪无法访问的路径等。这通常意味着您在最终可执行文件中留下的代码更少。
如果此代码 "removal" 主要发生在恰好覆盖良好的代码区域,而较少发生在覆盖较少的代码区域,则整体覆盖率将会降低。