Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Тесты проходят не по порядку Thucydides + JBehave + Maven

jbehave
thucydides
maven
Теги: #<Tag:0x00007f7b6206d198> #<Tag:0x00007f7b6206ce78> #<Tag:0x00007f7b6206cb58>

(Евгений Пиколенко) #1

Добрый день.

Используется связка Thucydides + JBehave + Maven. При запуске тестов они проходят не по порядку.
Тесты названы в алфавитном порядке. Пытался решить проблему плагинами для Maven и конфигурацией alphabetical.
Но результат одинаковый в Surfire и Failsafe.

Кофигурация для Failsafe

<plugin>
                <artifactId>maven-failsafe-plugin</artifactId>
                <groupId>org.apache.maven.plugins</groupId>
                <version>2.12</version>
                <configuration>
                    <includes>
                        <include>**/*.java</include>
                    </includes>
                    <excludes>
                        <exclude>**/SanityTest.java</exclude>
                    </excludes>
                    <argLine>-Xmx512m</argLine>
                    <systemPropertyVariables>
                        <webdriver.ie.driver>${webdriver.ie}</webdriver.ie.driver>
                        <webdriver.firefox.driver>${webdriver.firefox}</webdriver.firefox.driver>
                        <webdriver.chrome.driver>${webdriver.chrome}</webdriver.chrome.driver>
                        <brand>${brand}</brand>
                        <client>${client}</client>
                        <path>${path}</path>
                        <language>${language}</language>
                    </systemPropertyVariables>
                    <runOrder>alphabetical</runOrder>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

Конфигурация для Surefire

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.11</version>
                <configuration>
                       <excludes>
                        <exclude>**/SanityTest.java</exclude>
                     </excludes>
                    <systemPropertyVariables>
                        <webdriver.ie.driver>${webdriver.ie}</webdriver.ie.driver>
                        <webdriver.firefox.driver>${webdriver.firefox}</webdriver.firefox.driver>
                        <webdriver.chrome.driver>${webdriver.chrome}</webdriver.chrome.driver>
                        <brand>${brand}</brand>
                        <client>${client}</client>
                        <path>${path}</path>
                        <language>${language}</language>
                    </systemPropertyVariables>
                </configuration>
            </plugin>

Название тестов:
11.story
12.story

16.story

При запуске тесты проходят не по порядку.


(Александр Таранков) #2
  1. для начала надо понять зачем надо запускать тесты по порядку
  2. порядок тестов задается через jUnit/TestNG, мавену пофиг

Вот тут есть обсуждение похожего вопроса


(heartwilltell) #3

Не совсем своевременно, но пускай будет в теме, для тех кто будет интересоваться в дальнейшем - https://github.com/junit-team/junit/wiki/Test-execution-order

Для JUnit решается одной анотацией и специфическим именованием тестовых методов


(inkvizitorz) #4

С запозданием, но поблагодарю вас, очень помогло)
От себя добавлю, что в pom-файле нужно прописать JUnit 4.11
Ну и названия тестов будут выглядеть примерно так - A_Test, B_Test и т.п.