2016-04-14 24 views
1

SonarQubeダッシュボードにあるカスタムメイドのレポートを用意しています。ユニットテスト&統合テストの実行&カバレッジマトリックス。私はユニットテストのためにそれを得ることに成功しましたが、積分&全体のカバレッジ統計をフェッチするために利用可能なマトリックスキーがないようです。私はSonarQube 4.5.6を使用しています。 Sonar Dashboard StatsをHTML形式でエクスポートする別の方法がある場合は、私にも案内してください。コードは以下の通りである:Sonar WS APIから統合テストの結果を取得できません

public class TestStatistics{ 
    static String host = "http://my.server.com/Sonar"; 
    static String login = "admin"; 
    static String password = "admin";  
    static String resourceKey = "shift:shift"; 
    static String[] MEASURES_TO_GET = new String[]{"branch_coverage", 
     "new_branch_coverage", 
     "branch_coverage_hits_data", 
     "conditions_by_line", 
     "covered_conditions_by_line", 
     "coverage", 
     "new_coverage", 
     "line_coverage", 
     "new_line_coverage", 
     "coverage_line_hits_data", 
     "lines_to_cover", 
     "new_lines_to_cover", 
     "skipped_tests", 
     "uncovered_conditions", 
     "new_uncovered_conditions", 
     "uncovered_lines", 
     "new_uncovered_lines", 
     "tests", 
     "test_execution_time", 
     "test_errors", 
     "test_failures", 
     "test_success_density" 
     }; 

    public static void main(String[] args) {     
     try {  
      Date date = new Date(); 

      Sonar sonar = new Sonar(new HttpClient4Connector(new Host(host, login, password))); 
      ResourceQuery query = ResourceQuery.createForMetrics(resourceKey, MEASURES_TO_GET); 
      query.setIncludeTrends(true); 
      List<Resource> resources = sonar.findAll(query); 
      for(Resource resource:resources){ 
       List<Measure> allMeasures = resource.getMeasures(); 
       System.out.println("All Measures : "+allMeasures.toString()); 
       System.out.println("Unit Branch Coverage : "+resource.getMeasureValue("branch_coverage")); 
       System.out.println("Unit Test Coverage : "+resource.getMeasureValue("coverage")); 
       System.out.println("Unit Line Coverage : "+resource.getMeasureValue("line_coverage")); 
       System.out.println("Lines To Cover : "+resource.getMeasureValue("lines_to_cover")); 
       System.out.println("Skipped Tests : "+resource.getMeasureValue("skipped_tests")); 
       System.out.println("Uncovered Conditions : "+resource.getMeasureValue("uncovered_conditions")); 
       System.out.println("Uncovered Lines : "+resource.getMeasureValue("uncovered_lines")); 
       System.out.println("Unit Tests : "+resource.getMeasureValue("tests")); 
       System.out.println("Unit Test Execution Time : "+resource.getMeasureValue("test_execution_time")); 
       System.out.println("Unit Tests Errors : "+resource.getMeasureValue("test_errors")); 
       System.out.println("Unit Tests Failures : "+resource.getMeasureValue("test_failures")); 
       System.out.println("Unit Tests Success Density : "+resource.getMeasureValue("test_success_density")); 
      } 
       System.out.println("DONE"); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

}

答えて

0

私はようやく答えを見つけました。

すべてのメトリックのキーは、sonarqubeデータベースの下のmatricsというテーブルに格納されています。

私が以前に観察しなかったもう一つの愚かなことは、sonarqubeダッシュボードに表示された特定の統計情報にマウスを合わせると、指標のキーが明らかになるということです。

ありがとうStackOverFlow。次のように

統合&全体的なテストの実行統計のためのすべてのキーは、次のとおりです。 it_coverage、 it_line_coverage、 it_uncovered_lines、 it_branch_coverage、 it_uncovered_conditions、 overall_coverage、 overall_line_coverage、 overall_uncovered_lines、 overall_branch_coverage、 overall_uncovered_conditions

+1

データベースにこの情報をフェッチする(DB構造はバージョンに応じて変更することができるように信頼できない)過剰であり、代わりにWebサービスを使用する必要があります(他の回答を参照)。 –

2

api/metrics Web APIを使用して、利用可能な指標を一覧表示します(詳細はキー,,タイプなど)。 SonarQube 4.5.6において

関連する問題