плагин maven surefire - запускать все тесты последовательно - PullRequest
0 голосов
/ 25 декабря 2018

По какой-то причине я не могу заставить плагин maven surefire запускать мои тесты последовательно.

Я использую макет 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

Которые я посмотрел и обнаружил, что, вероятно, это как-то связано с параллельными тестами и проблематично с этим макетом.

В настоящее время мой мой мавен выглядит так

           <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>

Я хочу убедиться, что все мои тесты выполняются последовательно (один за другим) - это означает, что каждый метод тестирования каждого класса выполняется отдельно.

Какя могу этого достичь?

1 Ответ

0 голосов
/ 25 декабря 2018

Насколько мне известно, единственный способ обеспечить порядок юнит-тестов - это установить его в алфавитном порядке:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <runOrder>alphabetical</runOrder>
    </configuration>
</plugin>

Как говорится, вместо этого я думаю, что вам нужно определить в каждом тестеметод @After, который останавливает макет redis (и фактически ожидает его остановки), так что новый тест может запустить макет redis в методе @Before без конфликта

...