По какой-то причине я не могу заставить плагин maven surefire запускать мои тесты последовательно.
Я использую mock redis (https://github.com/kstyrc/embedded-redis) в своих тестах, и он отлично работает, но я получаю такие ошибки, как
Cannot run program "/tmp/1494421531552-0/redis-server-2.8.19" (in directory "/tmp/1494421531552-0"): error=26, Text file busy
Я посмотрел и обнаружил, что это, вероятно, имеет какое-то отношение к параллельным тестам и проблематично с этим макетом.
Текущий мой мой maven выглядит так
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
<configuration>
<trimStackTrace>false</trimStackTrace>
<useFile>false</useFile>
<reuseForks>false</reuseForks>
<forkCount>1</forkCount>
</configuration>
Я хочу убедиться, что все мои тесты выполняются последовательно (один за другим) - это означает, что каждый тестовый метод каждого класса выполняется отдельно.
Как я могу этого добиться?




Насколько мне известно, единственный способ обеспечить порядок модульных тестов - это расположить их в алфавитном порядке:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<runOrder>alphabetical</runOrder>
</configuration>
</plugin>
При этом, вместо этого, я думаю, вам нужно определять в каждом тесте метод @After, который останавливает mock redis (и фактически ждет, пока он не будет остановлен), чтобы новый тест мог запускать mock redis в методе @Before без конфликт
Я думаю, что аннотация NotThreadSafe может использоваться только в коде, однако обратите внимание на это решение: stackoverflow.com/questions/24811430/…
Спасибо. Есть ли способ определить для всех классов в конкретном pom NotThreadSafe? У меня есть несколько классов, которые расширяют класс BaseTest, и я хочу, чтобы все они выполнялись последовательно. Могу ли я установить NotThreadSafe в pom.xml, чтобы повлиять на все его классы?