Я знайшов найпростіший спосіб пропустити лише тести для надійної перевірки - це налаштувати перевірку ( але не відмовитись ) наступним чином:
<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.testsfailsafe", однак я не вважав це необхідним - оскільки одиничні тести зазвичай виконуються на більш ранній фазі, і якщо я хочу запустити одиничні тести, але не тести інтеграції, я би запустив testфази замість verifyфази. Ваш досвід може відрізнятися!
Ці skip.(surefire|failsafe).testsвластивості, ймовірно, повинні бути інтегровані в сам код підтвердженої / відмовної безпеки, але я не впевнений, наскільки це буде порушувати "вони точно такий самий плагін, за винятком 1 ефірної різниці".
maven.test.skipчиskipTests?