При подготовке релиза на maven ( release: prepare ) я прокомментировал некоторые тесты, которые я не хочу выполнять, но они все равно выполняются, даже полностью удаляя@Test
аннотации к методу.
ПРИМЕЧАНИЕ. Учтите, что опция Skip Test игнорируется во время выпуска maven
Сборка была выполнена в Eclipse в следующей среде :- Apache Maven 3.5.4 внешняя среда выполнения (не та, что встроена в Eclipse)- Java JDK 1.8.0_151- maven-compiler-plugin 3.0- maven-release-плагин 2.5.3- junit-jupiter-api 5.5.2- junit-jupiter-engine 5.5.2
Обычно, чтобы пропустить тест, я комментирую только аннотацию:
//@Test
public void testIwantToSkip() {
assertTrue(true);
}
На данный момент я нашел единственный способ пропустить тест:чтобы прокомментировать весь метод, но я ожидаю, что он будет пропущен, только комментируя аннотацию, как это произошло в Junit 4.
ОБНОВЛЕНИЕ Я также пытался использовать аннотацию @Disable
, к сожалению, безрезультатно. Образец:
@Test
@Disabled
public void testAuditMapper() {
....
}
ВОЗМОЖНОЕ РЕШЕНИЕ После нескольких тестов и благодаря подсказке Каямана я выяснил, что в сборке Maven аннотации полностью игнорируются, будут выполняться только методы, начинающиеся с "test
", остальные будут полностью игнорироваться, независимо от аннотаций. Например:
@Test
public void someThing() {
// will NOT be executed....
}
@Disabled
public void testSomeThing() {
// will be executed....
}
ОПРЕДЕЛЕНИЕ РЕШЕНИЯ В разделе сборки моего pom плагин surefire не был указан, поэтому полученный pom использовал версию этого плагина 2.12.4. Добавив это в раздел сборки:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M3</version>
</plugin>
все работает как положено. Спасибо @asa за подсказку.