В моем проекте есть тесты TestNG и JUnit (на самом деле Spock). Итак, нам нужно запустить оба и получить результаты от обоих. С поставщиками безотказной работы это казалось довольно простым, поэтому мы сделали следующее:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.17</version>
<configuration>
<threadCount>1</threadCount>
</configuration>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-testng</artifactId>
<version>2.17</version>
</dependency>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit47</artifactId>
<version>2.17</version>
</dependency>
</dependencies>
</plugin>
Однако через некоторое время выяснилось, что тесты junit запускаются дважды. Это нехорошо, потому что у нас много тестов, и я бы хотел ограничить время их выполнения.
После небольшого исследования я обнаружил, что surefire-testng провайдер запускает тесты TestNG и JUnit. И снова все казалось простым - я удалил surefire-junit47 провайдера.
Что ж, это тоже не было хорошим решением, потому что оказалось, что провайдер testng запускает тесты junit, но не дает результатов в target/surefire-reports/TEST*.xml. Я нашел там только результаты TestNG.
Есть ли какое-то решение, позволяющее запускать тесты только один раз и сообщать результаты?