2016-08-03 34 views
0

TFS 2015(アップデート2)、C++、Googleテスト、Sonarqube 5.6(Cxxコミュニティプラグイン付き)を使用しています。 私はカバレッジをインポートし、複製を計算し、cppcheckを使用して問題を作成することができましたが、テストの数はsonarqubeでインポートされていません。SonarqubeでGoogle Testメトリックをインポートできません

<test executable> --gtest_output=xml:<filename>を使用してJunitのようなXMLファイルを生成する必要がありますが、TFS(vNext)では、vstest.console.exeを使用して* Test.exeを実行するVSTestTaskを使用し、出力する方法がないようですas xml(デフォルトは.trx)。

GTestテストメトリックをsonarqubeに正しくインポートできた人はいますか? XSLTがtrxからxunitへの唯一の変換方法ですか?

おかげで、 ジョン

答えて

0

を参照してください図を行く...私はちょうどVisual Studio Test Reports Paths**/TestResults/*.trxsonar.cxx.vstest.reportsPaths)を入れて、今それが正しくロードされています。

+0

はい、.trxはデフォルトでサポートされています。あなたの説明によると、 "私はJunitのようなXMLファイルを生成する必要があります"、私はちょうど.xmlテスト結果レポートが必要だと誤解していました。 –

+0

ご協力いただきありがとうございます! – Jon

0

が最も簡単な方法は、変換された...私は適切sonar.cxx.vstest.reportsPathsに記入する必要があるかもしれないが、TRXのファイル名を動的にvstest.console.exeで設定されていますテスト結果を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

関連する問題