Программный запуск SonarQube runner для плагинов интеграционного тестирования

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

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

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

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

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


person henry    schedule 06.05.2016    source источник


Ответы (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. У нас есть инструмент под названием Orchestrator, который может запускать заданную версию сервера SonarQube, устанавливать плагины, заполнять профили качества, а затем запускать анализ. См., например: https://github.com/SonarSource/sonar-scm-svn/blob/master/its/src/test/java/com/sonarsource/it/scm/SvnTest.java

person Julien H. - SonarSource Team    schedule 09.05.2016