2016-05-06 3 views
0

Я работаю над плагином SonarQube и хотел бы добавить некоторые тесты, которые интегрируют тест с работающими серверами.Программный запуск бегуна SonarQube для плагинов для тестирования интеграции.

Я запускаю серверы в контейнерах докеров и хотел бы затем выполнить анализ сонара против них изнутри тестов JUnit.

Это выглядит возможным, используя org.sonarsource.scanner.api.EmbeddedScanner, но может быть и лучший способ.

Одним из недостатков использования EmbeddedScanner было бы то, что я мог бы анализировать только статические файлы на диске.

Есть ли лучший подход?

ответ

1

Вы можете (должны) выполнить проверку вашего анализатора, передав ему String. Но как только вы говорите об интеграционных тестах, вы действительно должны работать с физическими файлами.

Вы можете посмотреть на то, как мы пишем «средний тест» для части сканера: https://github.com/SonarSource/sonarqube/tree/5.5/sonar-scanner-engine/src/test/java/org/sonar/batch/mediumtest

Обратите внимание, что это BatchMediumTester утилита класс не является API и не гарантирует обратную совместимость в будущих версиях. Поэтому вы не можете писать «средние тесты» и запускать их в разных версиях SonarQube.

Для запуска интеграционных тестов мы выполняем анализ SonarQube «как настоящий пользователь» с помощью SonarQube Scanner. У нас есть инструмент под названием Orchestrator, который может запустить данную версию сервера SonarQube, установить плагины, заполнить профили качества, а затем запустить анализ. См. Например: https://github.com/SonarSource/sonar-scm-svn/blob/master/its/src/test/java/com/sonarsource/it/scm/SvnTest.java

Смежные вопросы