В конфигурации maven-surefire-plugin имеется несколько тегов execution
, т.е. цель test
выполняется несколько раз в фазе по умолчанию test
.На самом деле, конфигурация вашего плагина приводит к 3 тестовым исключениям:
- default-test (запускается автоматически по верному сигналу, пользовательские свойства системы не установлены)
- перед запуском(как определено первым в вашем POM, набор системных свойств)
- main-run (как определено вторым в вашем POM, набор системных свойств)
mvn test
с Maven 3.5.4:
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running com.example.app.ExampleTest
getProperty:null
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.078 sec
Results :
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] --- maven-surefire-plugin:2.14.1:test (before-run) @ app ---
[INFO] ...
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running com.example.app.ExampleTest
getProperty:aaa
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.078 sec
Results :
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] --- maven-surefire-plugin:2.14.1:test (main-run) @ app ---
[INFO] ...
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running com.example.app.ExampleTest
getProperty:bbb
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.078 sec
Results :
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
Рассмотрите возможность переопределения выполнения default-test
, чтобы правильно применить вашу конфигурацию.Пример:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.14.1</version>
<executions>
<execution>
<id>before-run</id>
...
</execution>
<execution>
<id>default-test</id>
...
</execution>
</executions>