2016-08-03 2 views
0

Я использую TFS 2015 (обновление 2), C++, Google test и Sonarqube 5.6 (с плагином сообщества Cxx). Я могу импортировать покрытие, вычислять дублирование, создавать проблемы с помощью cppcheck, но количество тестов не импортируется в sonarqube.Невозможно импортировать метрики Google Test в Sonarqube

мне нужно сгенерировать Junit подобный файл XML с помощью <test executable> --gtest_output=xml:<filename>, но в TFS (vNext), я использую VSTestTask, который использует vstest.console.exe запустить мой * TEST.exe и там, кажется, нет никакого способа вывода как xml (по умолчанию используется значение .trx).

Кто-нибудь сумел правильно импортировать метрические тесты GTest в sonarqube? Является ли XSLT преобразованием из trx в xunit единственным способом ...?

Может быть, мне нужно, чтобы правильно заполнить sonar.cxx.vstest.reportsPaths но имя файла TRX динамически установленного vstest.console.exe ...

Спасибо, Jon

ответ

0

Я просто положить **/TestResults/*.trx в Visual Studio Test Reports Paths (sonar.cxx.vstest.reportsPaths), и теперь он загружается правильно ... пойди разберись.

+0

Да, .trx поддерживается по умолчанию. Согласно вашему описанию «Мне нужно создать XML-файл, похожий на Junit», я не понял, что вам просто нужен отчет о результатах теста .xml. –

+0

Большое спасибо за вашу помощь! – Jon

0

Самый простой путь преобразования результат теста в формате XML. После этого вы просто использовали функцию импорта по умолчанию. Чтобы достичь этого, используйте 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

+0

спасибо за xsl, но на самом деле это похоже на * .trx. путь, который я вложил, был неправильным. – Jon