Я знайшов найпростіший спосіб пропустити лише тести для надійної перевірки - це налаштувати перевірку ( але не відмовитись ) наступним чином:
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.14</version>
<configuration>
<!-- skips surefire tests without skipping failsafe tests.
Property value seems to magically default to false -->
<skipTests>${skip.surefire.tests}</skipTests>
</configuration>
</plugin>
Це дозволяє запускати mvn verify -Dskip.surefire.tests
і пропускатимуться лише надійні, а не безвідмовні, тести; він також запустить усі інші необхідні фази, включаючи попередню інтеграцію та постінтеграцію, а також виконає verify
мету, яка необхідна для того, щоб фактично провалити свою побудову, якщо ваші тести на інтеграцію не зможуть.
Зауважте, що це переосмислює властивість, що використовується для вказівки про тестування тестів, тому, якщо ви надаєте канонічний -DskipTests=true
, надійний файл проігнорує його, але пошкодження буде захищено, що може бути несподіваним, особливо якщо у вас вже є збірки / користувачі, які вказали цей прапор. Простий спосіб вирішення, схоже, за замовчуванням skip.surefire.tests
значення skipTests
у вашому <properties>
розділі пам’яті:
<properties>
<skip.surefire.tests>${skipTests}</skip.surefire.tests>
</properties>
Якщо вам потрібно, ви можете надати аналогічний параметр, який називається " skip.failsafe.tests
failsafe", однак я не вважав це необхідним - оскільки одиничні тести зазвичай виконуються на більш ранній фазі, і якщо я хочу запустити одиничні тести, але не тести інтеграції, я би запустив test
фази замість verify
фази. Ваш досвід може відрізнятися!
Ці skip.(surefire|failsafe).tests
властивості, ймовірно, повинні бути інтегровані в сам код підтвердженої / відмовної безпеки, але я не впевнений, наскільки це буде порушувати "вони точно такий самий плагін, за винятком 1 ефірної різниці".
maven.test.skip
чиskipTests
?