有没有人知道如何使用在 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/