unit-testing - 代码覆盖率工具 Visual Studio 2010 C++

标签 unit-testing visual-studio-2010 code-coverage

有没有人知道如何使用在 Visual Studio 2010 中工作的代码覆盖率结果在 C++ 中进行一些单元测试,我到处寻找一些答案。我想将我正在测试的项目和测试项目分开。使用项目输出静态库不是解决方案,因为 VS 2010 中的代码覆盖工具无法将检测代码放入库中。我试过将 dll 作为要测试的项目,但是由于 CLR:safe 参数被打开以进行测试,因此无法与创建的测试正确链接。有什么想法吗?或者 MS 只是无法制作 C++ 代码覆盖工具。

最佳答案

(完全披露:我在维护此功能的团队中)

VS2010 支持原生 C++ 代码覆盖率,但正如您所见,您只能检测链接的二进制文件(例如 .dll 或 .exe)。这意味着您要为其收集覆盖率的代码必须在检测之前链接到二进制图像中。

你用的是什么单元测试框架?听起来您的测试项目是纯托管 C++ ( /clr:safe )。如果您将 native C++ 项目构建为 DLL,您的测试项目至少应该能够使用 P/Invoke 调用 native DLL。调用。通过这样做,您实际上不需要将您的 native .lib 链接到您的测试项目中。

关于unit-testing - 代码覆盖率工具 Visual Studio 2010 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4743945/

相关文章:

java - Android @NonNull 的用处

java - 如何识别软件中的错误而不是测试人员的错误?

c# - visual studio 中的条件引用 - 如何定义自定义变量

css - 有没有办法根据我的 HTML 标记制作 Visual Studio 2010 自动完成选择器?

wpf - 在 WPF 应用程序中调试 Silverlight

c - BullsEye代码覆盖率

javascript - npm test 出错,但 mocha test node.js 出错

unit-testing - 引用错误 : ShadowRoot is not defined Jest and Vue3

c++ - 代码覆盖率 (Lcov) 错误地显示 100% 覆盖率

带有来自命令行的覆盖率报告的 Android 本地单元测试