Jacoco и Arquillian в многомодульном проекте Maven

Я слежу за этой статьей: http://www.softwarepassion.com/it-coverage-with-arquillian-jacoco-extension/, чтобы получить тестовое покрытие для интеграционных тестов arquillian. Мой проект представляет собой многомодуль, и я не знаю, куда поместить подключаемый модуль и зависимости. Это в верхней части, в модуле создания артефактов или в модуле интеграционного тестирования? Спасибо


person Mike    schedule 10.09.2012    source источник


Ответы (1)


В некоторой степени это зависит от деталей вашей настройки Maven, которых нет в вашем вопросе. Вот несколько общих советов.

1) Где вы должны разместить зависимости arquillian-jacoco и jacoco?

Эти зависимости, вероятно, должны находиться там же, где и остальные ваши зависимости Arquillian. Я понимаю, что просто наличие этих зависимостей заставляет Arquillian использовать JaCoCo, а не объявление плагина; даже если эти зависимости находятся в родительском POM с фактическими тестами Arquillian, классы тестов Arquillian все равно должны быть инструментированы. Вы бы не поместили эти зависимости в родственный модуль к модулю с тестами, поскольку они должны быть унаследованы модулем интеграционного тестирования (если, конечно, этот родственный модуль не был объявлен как зависимость тестового модуля).

2) Где разместить декларацию плагина JaCoCo?

Как отмечалось выше, вам может даже не понадобиться это объявление, в зависимости от того, чего вы пытаетесь достичь. Если вы хотите сгенерировать отчет, а не только файлы jacoco.exec, вам нужно будет объявить плагин и выполнение с целью отчета. Вы также можете объявить плагин с целью prepare-agent, если у вас есть другие тесты, которые вы хотите использовать с помощью JaCoCo, например модульные тесты.

Если вы собираетесь объявить плагин, с ним можно обращаться так же, как с любым другим плагином Maven. Если вы хотите запускать JaCoCo в нескольких модулях по умолчанию, вы можете поместить объявление плагина в родительский POM внутри обычного тега «plugins» и унаследовать его всеми дочерними модулями, или вы можете поместить его в родительский POM. внутри элемента 'pluginManagement', чтобы конфигурация могла быть унаследована (см. http://maven.apache.org/pom.html#Plugin_Management). В качестве альтернативы, если вы хотите запускать тесты Arquillian только в своем модуле тестирования интеграции, вы также можете просто объявить подключаемый модуль в POM этого модуля (учитывая, что вам нужен отчет, и без цели подготовки агента, если вы только инструментируете тесты Arquillian ).

Надеюсь, это поможет!

person Katie J. Ots    schedule 09.11.2012