mvn test не соответствует порядку проверок зависимостиOnGroups - PullRequest
0 голосов
/ 29 января 2019

mvn test не соответствует порядку выполнения тестов, закодированных с помощью аннотации TestNG depenOnGroups

Я попытался запустить проект в Eclipse Run As TestNG Test.Он выполняется в ожидаемом порядке.

package com.chain;

StreamTest.java:

@Test(groups = { "main" })
public class StreamTest {
    static int durationBase = 2000;
    protected Logger logger = Logger.getLogger(this.getClass().getName());

    @BeforeClass()
    public void beforeClassMethod() throws InterruptedException {
        logger.info("Thread id: " + Thread.currentThread().getId());
        Thread.sleep((long) (durationBase * Math.random()));
    }

    public void testMethod1() throws InterruptedException {
        logger.info("Thread id: " + Thread.currentThread().getId());
        Thread.sleep((long) (durationBase * Math.random()));
    }

    public void testMethod2() throws InterruptedException {
        logger.info("Thread id: " + Thread.currentThread().getId());
        Thread.sleep((long) (durationBase * Math.random()));
    }

    @AfterClass()
    public void afterClassMethod() throws InterruptedException {
        logger.info("Thread id: " + Thread.currentThread().getId());
        Thread.sleep((long) (durationBase * Math.random()));
    }
}

EndStreamTest.java:

package com.chain;

@Test(dependsOnGroups = { "main.*" })
public class EndStreamTest {
    static int durationBase = 2000;
    protected Logger logger = Logger.getLogger(this.getClass().getName());

    @BeforeClass
    public void beforeClassMethod() throws InterruptedException {
        logger.info("Thread id: " + Thread.currentThread().getId());
        Thread.sleep((long) (durationBase * Math.random()));
    }

    @Test(dependsOnGroups = { "main" }, groups = { "cleanup" })
    public void testMethod1() throws InterruptedException {
        logger.info("Thread id: " + Thread.currentThread().getId());
        Thread.sleep((long) (durationBase * Math.random()));
    }
}   



testng.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="classes" thread-count="10">
  <test name="Stonecress Tests">
    <packages>
      <package name="com.chain" />
    </packages>
  </test>
</suite>



POM.xml:

<build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.19.1</version>
                    <configuration>
                        <!-- Suite testng xml file to consider for test execution -->
                        <suiteXmlFiles>
                            <suiteXmlFile>testng.xml</suiteXmlFile>
                        </suiteXmlFiles>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>


Ожидаемые результаты (отлично работает на Eclipse. Запустите Project as TestNG Test):

28 января 2019 г. 16:59:34 com.chain.StreamTest beforeClassMethod

ИНФОРМАЦИЯ: Идентификатор потока: 1

28 января 2019 16:59:36 com.chain.StreamTest testMethod1

ИНФОРМАЦИЯ: Идентификатор потока: 1

28 января 2019 г. 16:59:38 com.chain.StreamTest testMethod2

ИНФОРМАЦИЯ: Идентификатор потока: 1

28 января 2019 г. 16:59:39 com.chain.StreamTest afterClassMethod

ИНФОРМАЦИЯ: Идентификатор потока: 1

28 января 2019 16:59:40 com.chain.EndStreamTest beforeClassMethod

ИНФОРМАЦИЯ: Идентификатор потока:1

28 января 2019 г. 16:59:40 com.chain.EndStreamTest testMethod1

ИНФОРМАЦИЯ: Идентификатор темы: 1

28 января 2019 г. 4:59:42PM com.chain.EndStreamTest testMethod2


Фактические результаты (при запуске из командной строки с помощью теста mvn):

28 января 2019 г. 16:52:41 com.chain.StreamTestbeforeClassMethod

ИНФОРМАЦИЯ: Идентификатор потока:15

28 января 2019 г. 16:52:41 com.chain.EndStreamTest beforeClassMethod

ИНФОРМАЦИЯ: Идентификатор потока: 18

28 января 2019 г. 4:52:41PM com.chain.StreamTest testMethod1

ИНФОРМАЦИЯ: Идентификатор потока: 15

28 января 2019 16:52:42 com.chain.EndStreamTest testMethod1

ИНФОРМАЦИЯ: Темаid: 18

28 января 2019 г. 16:52:43 com.chain.EndStreamTest testMethod2

ИНФОРМАЦИЯ: идентификатор темы: 18

28 января 2019 г. 4:52: 43 PM com.chain.StreamTest testMethod2

ИНФОРМАЦИЯ: Идентификатор потока: 15

28 января 2019 16:52:43 com.chain.StreamTest afterClassMethod

ИНФО: Идентификатор темы: 17

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...