我们正在使用 AQTime 的覆盖率分析器来检查单元测试的覆盖率结果。它似乎通常工作正常,但有一个令人讨厌的习惯,即高估覆盖范围,因为某些功能根本不出现。我认为这是因为链接器已经剥离了它们,因为它们没有被调用,但显然这并不理想,因为我希望它们显示为“未覆盖”。
有谁知道是否有办法配置 Visual C++ 或 AQTime,以便这些函数将被正确标记为“未涵盖”?
最佳答案
AQtime 从模块的调试信息中获取例程列表。由于链接器已经剥离了一些例程,因此没有它们的调试信息,并且 AQtime 不会“看到”它们。
通常,所有链接器都可以选择启用/禁用此功能。例如,在 Visual C++ 项目中,此选项名为引用,位于链接器| 目录下。优化属性组。删除此选项的值或在应用程序的调试配置中将其设置为否 (/OPT:NOREF),链接器将不会删除未使用的内容功能。该选项记录在 here .
关于visual-c++ - 如何防止函数被排除在覆盖率分析之外?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4047518/