2016-04-14 2 views
1

Я готовлю индивидуальный отчет о метриках, присутствующих на панели мониторинга SonarQube, преимущественно, Unit Test & Интеграция Выполнение теста & матрица покрытия. Мне удалось получить его для Unit Tests, но, похоже, нет доступных ключей для выбора Интеграция & общая статистика охвата. Я использую SonarQube 4.5.6. Пожалуйста, также посоветуйте мне, есть ли другой способ экспортировать статистику Sonar Dashboard как 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

я, наконец, нашел ответ.

Все ключи показателей хранятся в таблице под названием matrics под базой данных sonarqube.

Теперь, еще одна глупая вещь, которую я раньше не наблюдал, заключается в том, что если мы наводим курсор на определенную статистику, отображаемую на панели инструментов 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

Извлечение этой информации в базе данных является излишним (и ненадежны как структура БД может изменяться в зависимости от версии), вы должны использовать веб-службы (см. другой ответ). –

2

Используйте api/metrics Веб-API для отображения доступных показателей (и получите подробную информацию, такую ​​как ключ, имя, тип и т.п.).