visual-c++ - 如何防止函数被排除在覆盖率分析之外?

标签 visual-c++ code-coverage aqtime

我们正在使用 AQTime 的覆盖率分析器来检查单元测试的覆盖率结果。它似乎通常工作正常,但有一个令人讨厌的习惯,即高估覆盖范围,因为某些功能根本不出现。我认为这是因为链接器已经剥离了它们,因为它们没有被调用,但显然这并不理想,因为我希望它们显示为“未覆盖”。

有谁知道是否有办法配置 Visual C++ 或 AQTime,以便这些函数将被正确标记为“未涵盖”?

最佳答案

AQtime 从模块的调试信息中获取例程列表。由于链接器已经剥离了一些例程,因此没有它们的调试信息,并且 AQtime 不会“看到”它们。

通常,所有链接器都可以选择启用/禁用此功能。例如,在 Visual C++ 项目中,此选项名为引用,位于链接器| 目录下。优化属性组。删除此选项的值或在应用程序的调试配置中将其设置为否 (/OPT:NOREF),链接器将不会删除未使用的内容功能。该选项记录在 here .

关于visual-c++ - 如何防止函数被排除在覆盖率分析之外?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4047518/

相关文章:

c - Visual Studio 6使用的c编译器是什么?

c++ - 在 C++ 编程中编写函数 ASTERISK

C中的代码覆盖率

c++ - 我的 AQTime 结果中的时间总和与我测量的响应时间不匹配

delphi - Delphi 有快速的 GetToken 例程吗?

c++ - C++ 中的嵌套 Lambda 捕获

testing - 在任何程序中,100% 的语句覆盖率不是意味着 100% 的分支覆盖率吗?

unit-testing - SonarQube - 如何使用所有项目的 gradle 包装器全局使用 sonarRunner 任务/sonar.properties 文件

delphi - 如何在Delphi XE中使用AQtime(免费)?

c++ - 修复 Visual C++ 中的编译错误