无法在 Sonarqube 中导入 Google 测试指标
Unable to import Google Test metrics in Sonarqube
我正在使用 TFS 2015(更新 2)、C++、Google 测试和 Sonarqube 5.6(带有 Cxx 社区插件)。
我能够使用 cppcheck 导入覆盖率、计算重复、创建问题,但测试数量未导入 sonarqube。
我需要使用 <test executable> --gtest_output=xml:<filename>
生成类似 Junit 的 XML 文件,但在 TFS (vNext) 中,我使用 VSTestTask,它使用 vstest.console.exe 到 运行 我的 *Test.exe 似乎没有办法输出为 xml (它默认为 .trx)。
有没有人设法将 GTest 测试指标正确导入 sonarqube? XSLT 是从 trx 转换为 xunit 的唯一方法吗...?
可能我需要正确填写 sonar.cxx.vstest.reportsPaths
但 trx 的文件名是由 vstest.console.exe...
动态设置的
谢谢,
乔恩
最简单的方法是将测试结果转换为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;
}
}
更多详细信息和方式请参考Publishing vstest results? & MSTest Plugin
我刚把 **/TestResults/*.trx
放在 Visual Studio Test Reports Paths
(sonar.cxx.vstest.reportsPaths
) 中,现在它正在正确加载...看图。
我正在使用 TFS 2015(更新 2)、C++、Google 测试和 Sonarqube 5.6(带有 Cxx 社区插件)。 我能够使用 cppcheck 导入覆盖率、计算重复、创建问题,但测试数量未导入 sonarqube。
我需要使用 <test executable> --gtest_output=xml:<filename>
生成类似 Junit 的 XML 文件,但在 TFS (vNext) 中,我使用 VSTestTask,它使用 vstest.console.exe 到 运行 我的 *Test.exe 似乎没有办法输出为 xml (它默认为 .trx)。
有没有人设法将 GTest 测试指标正确导入 sonarqube? XSLT 是从 trx 转换为 xunit 的唯一方法吗...?
可能我需要正确填写 sonar.cxx.vstest.reportsPaths
但 trx 的文件名是由 vstest.console.exe...
谢谢, 乔恩
最简单的方法是将测试结果转换为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;
}
}
更多详细信息和方式请参考Publishing vstest results? & MSTest Plugin
我刚把 **/TestResults/*.trx
放在 Visual Studio Test Reports Paths
(sonar.cxx.vstest.reportsPaths
) 中,现在它正在正确加载...看图。