我们有一个使用 C#、C++/Cli 和一些本机 C++ 代码的项目。我们使用 TeamCity 进行构建和测试。
我们使用 vstest.console(VS2012 测试运行器)运行测试。
对于托管代码,dotCover(集成到 TeamCity)用于代码覆盖。但是,它不适用于本机 C++ 代码(这是意料之中的)。
如何将我们对本机 C++ 部分的单元测试的代码覆盖率结果导入 TeamCity?理想情况下,解决方案是免费的。
我们有一个使用 C#、C++/Cli 和一些本机 C++ 代码的项目。我们使用 TeamCity 进行构建和测试。
我们使用 vstest.console(VS2012 测试运行器)运行测试。
对于托管代码,dotCover(集成到 TeamCity)用于代码覆盖。但是,它不适用于本机 C++ 代码(这是意料之中的)。
如何将我们对本机 C++ 部分的单元测试的代码覆盖率结果导入 TeamCity?理想情况下,解决方案是免费的。
我们使用Bullseye Coverage进行 C++ 代码覆盖。然后,我们使用提供的covxml
工具将二进制覆盖文件转换为 XML 文件,然后我们读出一堆有用的功能和条件覆盖属性(例如fn_total
、fn_cov
、cd_total
、 ),并使用统计服务消息将cd_cov
这些提供给 TeamCity预定义的覆盖键。
设置起来有点麻烦,但我认为 TeamCity 仍然不支持任何 C++ 覆盖工具,所以我们的解决方案在多年后仍然适用于我们。
编辑:我已将我们内部工具的 XML解析代码上传到 Gist。