2

我们有一个使用 C#、C++/Cli 和一些本机 C++ 代码的项目。我们使用 TeamCity 进行构建和测试。

我们使用 vstest.console(VS2012 测试运行器)运行测试。

对于托管代码,dotCover(集成到 TeamCity)用于代码覆盖。但是,它不适用于本机 C++ 代码(这是意料之中的)。

如何将我们对本机 C++ 部分的单元测试的代码覆盖率结果导入 TeamCity?理想情况下,解决方案是免费的。

4

1 回答 1

8

我们使用Bullseye Coverage进行 C++ 代码覆盖。然后,我们使用提供的covxml工具将二进制覆盖文件转换为 XML 文件,然后我们读出一堆有用的功能和条件覆盖属性(例如fn_totalfn_covcd_total、 ),并使用统计服务消息cd_cov这些提供给 TeamCity预定义的覆盖键

设置起来有点麻烦,但我认为 TeamCity 仍然不支持任何 C++ 覆盖工具,所以我们的解决方案在多年后仍然适用于我们。

编辑:我已将我们内部工具的 XML解析代码上传到 Gist。

于 2013-08-20T10:49:18.883 回答