Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing C+的TeamCity代码覆盖范围+;代码 我们有一个使用C++、C++和CLI和一些本地C++代码的项目。我们使用TeamCity进行构建和测试_Unit Testing_Teamcity_Code Coverage_Dotcover - Fatal编程技术网

Unit testing C+的TeamCity代码覆盖范围+;代码 我们有一个使用C++、C++和CLI和一些本地C++代码的项目。我们使用TeamCity进行构建和测试

Unit testing C+的TeamCity代码覆盖范围+;代码 我们有一个使用C++、C++和CLI和一些本地C++代码的项目。我们使用TeamCity进行构建和测试,unit-testing,teamcity,code-coverage,dotcover,Unit Testing,Teamcity,Code Coverage,Dotcover,我们使用vstest.console(VS2012测试运行程序)运行测试 对于托管代码,dotCover(集成到TeamCity中)用于代码覆盖。但是,它不适用于本机C++代码(这是预期的)。p> 我如何获得代码覆盖率结果?我们对本机C++部分的单元测试进入TeaMeCase.理想情况下,解决方案将是免费的。 < P>我们使用C++代码覆盖率。然后,我们使用提供的covxml工具将二进制覆盖率文件转换为XML文件,然后读取函数和条件覆盖率的一系列有用属性(例如fn_-total,fn_-cov,

我们使用vstest.console(VS2012测试运行程序)运行测试

对于托管代码,dotCover(集成到TeamCity中)用于代码覆盖。但是,它不适用于本机C++代码(这是预期的)。p> <>我如何获得代码覆盖率结果?我们对本机C++部分的单元测试进入TeaMeCase.理想情况下,解决方案将是免费的。

< P>我们使用C++代码覆盖率。然后,我们使用提供的
covxml
工具将二进制覆盖率文件转换为XML文件,然后读取函数和条件覆盖率的一系列有用属性(例如
fn_-total
fn_-cov
cd_-total
cd_-cov
),并通过使用

这是一个需要建立的工作,但是我认为TeMeTeCon仍然没有支持任何C++覆盖工具,所以我们的解决方案在我们几年后仍然很好。


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

如果您能分享您的XML解析脚本,那就太好了:)当然,这没有什么秘密。我把它上传到了一个要点上,见上面的帖子。我不认为我们使用的是最新的Bullseye(当然比代码中的注释要新),所以YMMV,但是如果我没记错的话,这个文件格式是作者发布的,所以不应该被破坏。这是Bullseye网站上的文档:非常好,谢谢分享。您的代码引用了一个ReportHelper类,但缺少该类。不管怎样,如果你告诉我你将哪些teamcity覆盖关键点映射到哪些bullseye结果属性,对我来说就足够了。谢谢@对此我很抱歉,我已经在要点中添加了ReportHelper.cs。我还添加了OutputTeamCityServiceMessages.cs,它只是具有将TeamCity服务消息输出到stdout的方法。IIRC底部的两个设置为100,否则TeamCity的web用户界面就会中断,但这可能不再需要了B'是指块覆盖,所以我只是在分支中使用它。