Maven - добавить пользовательский этап для запуска плагина с другой конфигурацией - PullRequest
5 голосов
/ 27 июня 2010

У меня есть два набора интеграционных тестов в одном проекте maven - автоматический и ручной тесты. Ручные тесты немногочисленны, но утомительны - они требуют подключения серверов и т. Д. Я хотел бы создать отдельную цель для ручных тестов, чтобы я мог запустить что-то вроде mvn manualtests для запуска ручных тестов. Если вы просто запускаете нормальную сборку maven mvn install или около того, автоматические тесты должны быть запущены.

Я уже аннотировал ручные тесты аннотацией TestNG @Test(groups="manual". Теперь цель состоит в том, чтобы иметь две конфигурации подключаемого модуля surefire: одна запускает автоматические тесты, связанные с фазой тестирования сборки, а другая - ручные тесты, связанные с другой пользовательской фазой, которую я хотел бы назвать manualtests. Кажется, что невозможно связать выполнение плагина с несуществующей фазой (то есть той, которая не предопределена maven). Разве нельзя определить свои собственные фазы?

Ответы [ 2 ]

2 голосов
/ 23 июля 2010

Вы можете использовать профили для этого: http://maven.apache.org/guides/introduction/introduction-to-profiles.html

1 голос
/ 01 июля 2010

Это должно быть возможно, хотя и нелегко. Первый шаг: посмотрите, как это делается по умолчанию.

используйте эту зависимость:

<dependency>
    <groupId>org.apache.maven</groupId>
    <artifactId>maven-core</artifactId>
    <version>${maven.version}</version>
</dependency>

получите исходные тексты и взгляните на файл component.xml внутри META-INF / plexus. там определены фазы по умолчанию и привязки жизненного цикла / фазы по умолчанию.

создайте плагин, который переопределяет эти фазы по умолчанию (в его собственных компонентах.xml) и определяет его как расширение

...