Гудзон + Мавен + Эмма / Сонар = Построить цикл 2х - PullRequest
3 голосов
/ 16 марта 2011

У меня есть куча проектов Maven, строящихся в Гудзоне, а Сонар сидит в стороне. Сонар дает мне статистику сонара, статистику FindBugs и покрытие кода.

Я заметил, что независимо от того, использую ли я Sonar или EMMA через Maven напрямую, весь цикл сборки выполняется дважды. Это включает в себя init (который в моем случае реинициализирует базу данных дорого) и юнит-тесты (несколько сотен - тоже дорого).

Как я могу предотвратить это? Я много читал, и, похоже, это связано с разработкой плагинов для покрытия кода - чтобы отделить неинструментированные классы от инструментальных.

Я пробовал конфигурации, такие как:

  • Maven работает: развертывание, EMMA
  • Maven работает: развернуть; развертывание в сонар по завершении

Ответы [ 2 ]

1 голос
/ 17 марта 2011

Чтобы добавить ответ @ Strawberry, вы можете повторно использовать отчеты о модульных тестах вместо того, чтобы запускать их снова. См. Раздел «Повторное использование существующих отчетов об испытаниях модулей» в документации гидролокатора

Как только это будет сделано, вы можете настроить следующее в Hudson

clean deploy sonar:sonar
1 голос
/ 17 марта 2011

Сонар Документация рекомендует запускать плагин сонара в 2 этапа: -

mvn clean install -Dtest = false -DfailIfNoTests = false

mvn sonar: sonar

Тесты обойдены на первом этапе и неявно выполняются на втором этапе.

Однострочная альтернатива - выполнить следующую команду: -

mvn clean install sonar:sonar -Dmaven.test.failure.ignore=true

но тесты пройдут дважды - как вы уже нашли.

...