我正在使用TFS 2015 (更新2),C++,Google测试和Sonarqube5.6(与Cxx社区插件)。我能够导入覆盖率,计算复制,使用cppcheck创建问题,但是测试的数量并不是在sonarqube中导入。
我需要使用<test executable> --gtest_output=xml:<filename>生成一个类似Junit的XML文件,但在TFS (vNext)中,我使用使用vstest.console.exe运行vNext的VSTestTask,而且似乎没有办法以xml的形式输出(默认为.trx)。
是否有人能够正确地将GTest测试指标导入声呐?要从trx转换到xunit的XSLT是唯一的方法吗?
可能我需要正确地填写sonar.cxx.vstest.reportsPaths,但是vstest.console.exe动态地设置了文件名.
谢谢,乔恩
发布于 2016-08-04 16:23:51
我刚把**/TestResults/*.trx放进了Visual Studio Test Reports Paths (sonar.cxx.vstest.reportsPaths),现在它被正确加载了.去想想吧。
发布于 2016-08-04 13:14:00
最简单的方法是将测试结果转换为XML格式。在此之后,您只使用默认的导入functionality.To来实现这一点,在下面的代码中使用CoverageCoverter.exe。
class Program
{
static int Main(string[] args)
{
if ( args.Length != 2)
{
Console.WriteLine("Coverage Convert - reads VStest binary code coverage data, and outputs it in XML format.");
Console.WriteLine("Usage: ConverageConvert <sourcefile> <destinationfile>");
return 1;
}
CoverageInfo info;
string path;
try
{
path = System.IO.Path.GetDirectoryName(args[0]);
info = CoverageInfo.CreateFromFile(args[0], new string[] { path }, new string[] { });
}
catch (Exception e)
{
Console.WriteLine("Error opening coverage data: {0}",e.Message);
return 1;
}
CoverageDS data = info.BuildDataSet();
try
{
data.WriteXml(args[1]);
}
catch (Exception e)
{
Console.WriteLine("Error writing to output file: {0}", e.Message);
return 1;
}
return 0;
}
}更详细的信息和方法请参考公布最有价值的结果? & MSTest插件
https://stackoverflow.com/questions/38751321
复制相似问题