Я установил true в pom.xml, но я хочу иметь возможность запускать тесты, когда захочу их запустить. Я пробовал mvn -Prun-its clean verify
и mvn verify -DskipITs=false
, но они не работают, тесты все равно пропускаются.
Добавленный плагин в pom.xml выглядит следующим образом:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<skipITs>true</skipITs>
<parallel>methods</parallel>
<useUnlimitedThreads>true</useUnlimitedThreads>
<forkCount>1</forkCount>
<reuseForks>true</reuseForks>
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit47</artifactId>
<version>${surefire-version}</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit-jupiter-version}</version>
</dependency>
</dependencies>
</plugin>
В выводе mvn verify -DskipITs=false
я вижу следующее:
[INFO] --- maven-failsafe-plugin:2.22.2:verify (default) @ redis-service-integration-tests ---
[INFO] Tests are skipped.
если вы удалите skipIT в POM, он выполнит тесты, верно?
Да, это правильно
Я предлагаю заглянуть на youtu.be/IVwbrhYCLpc Также не используйте определенные вручную провайдеры surefire-junit47... лучше оставьте это зависимостям... и лучше используйте самые последние версии версий surefire/failsafe plugins
Вы должны изменить конфигурацию плагина, чтобы она выглядела так:
<skipITs>${skipITs}</skipITs>
Объяснение:
чтобы заставить механизм свойств работать, вы должны использовать свойства проекта <properties>
, чтобы установить skipITs вместо конфигурации плагина, иначе его нельзя будет легко переопределить извне.
Но тогда, если в аргументе skipITs ничего не указано, будет ошибка?
Соответственно обновлен ответ, но если он пуст, его следует интерпретировать как ложный, попробуйте..
Хорошо, только что проверил, если ничего не указано, он запускает тесты. Я хочу, чтобы поведение по умолчанию не запускало тесты, и оно должно запускаться только тогда, когда я этого хочу. Как мне этого добиться?
Только что увидел обновленный ответ, проверю свойства
не могли бы вы предоставить pom.xml, чтобы увидеть, в чем именно заключается ваша проблема, вместе с сгенерированным выводом, если это возможно. Спасибо.