В нашей сборке maven мы используем профиль по умолчанию для сборки и другой профиль для тестов. Когда наши тесты запускаются под профилем по умолчанию, по разным причинам они ломаются.В maven - как отобразить сообщение пользователю, когда этап проверки запускается по умолчанию?
например хорошо в нашей команде с нашей сборкой
mvn -Pfoo verify
плохого в нашей команде с нашей сборкой
mvn verify
Мы хотим, чтобы поощрить людей в нашей команде запускать тесты под «Foo» жизненного цикла и предупреждать их, когда они этого не делают.
Мой нынешний подход к решению этой проблемы состоит в том, чтобы создать новый тест проверки подлинности для профиля по умолчанию, исключить все тесты, кроме нового DefaultProfileWarningTest
, единственной целью которого является указание пользователю выполнить тесты в профиле foo
.
Так что тест может выглядеть следующим образом:
public class DefaultProfileWarningTest {
@Test
public void displayWarning() {
System.out.println("The tests aren't running - you should have run **mvn -Pfoo verify**");
}
}
С исполнением в pom.xml
аналогично:
<profiles>
<profile>
<id>foo</id>
...
</profile>
<profile>
<id>my-default-profile</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<includes>
<include>DefaultProfileWarningTest.java</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profiles>
Но это, кажется, как перегруженный ляп. Предполагая, что мы не можем исправить предмет профиля - есть ли простой облегченный способ отображения сообщения пользователю, когда фаза проверки для профиля по умолчанию?
Мой вопрос: В maven - как отобразить сообщение пользователю, когда фаза проверки запускается по умолчанию?
Зачем вам нужно сообщение? Кроме того, что вы используете плагин maven-surefire, используя профиль ...если эти тесты являются интеграционными тестами, то вам лучше использовать maven-failafe-plugin, что означает, что они будут выполняться только в том случае, если вы выполняете 'mvn clean verfiy', если вы делаете' mvn clean package', они не будут запускаться ... если ваш член команды хотите сделать «mvn deploy», будут проводиться тесты интеграции ... – khmarbaise
Кроме того, если эти тесты ломаются, вы должны исправить эти тесты, чтобы их запустить, в противном случае выполнение этих тестов не имеет смысла ... – khmarbaise
Спасибо @khmarbaise - Это была хорошая подсказка - я пересмотрел этот вариант. – hawkeye