Как заставить testNG запускать класс за классом с порядком тестов - testng - PullRequest
0 голосов
/ 18 июня 2020

У меня вопрос по поводу testNG. У меня есть пять классов тестов (класс a, класс b, класс c, класс d, класс e) и в каждом классе 3 тестов (test1 test2 test3) Проблема в том, что у меня @Test(groups = {"smokeTest"}, enabled = true, priority = 1) во всех тестах @Test(groups = {"smokeTest"}, enabled = true, priority = 1) - класс a @Test(groups = {"smokeTest"}, enabled = true, priority = 2) - класс a @Test(groups = {"smokeTest"}, enabled = true, priority = 3) - класс a

@Test(groups = {"smokeTest"}, enabled = true, priority = 1) - класс b @Test(groups = {"smokeTest"}, enabled = true, priority = 2) - класс b @Test(groups = {"smokeTest"}, enabled = true, priority = 3) - класс b

@Test(groups = {"smokeTest"}, enabled = true, priority = 1) - класс c @Test(groups = {"smokeTest"}, enabled = true, priority = 2) - класс c @Test(groups = {"smokeTest"}, enabled = true, priority = 3) - класс c

@Test(groups = {"smokeTest"}, enabled = true, priority = 1) - класс d @Test(groups = {"smokeTest"}, enabled = true, priority = 2) - класс d @Test(groups = {"smokeTest"}, enabled = true, priority = 3) - класс d

@Test(groups = {"smokeTest"}, enabled = true, priority = 1) - класс e @Test(groups = {"smokeTest"}, enabled = true, priority = 2) - класс e @Test(groups = {"smokeTest"}, enabled = true, priority = 3) - класс e

Когда я запускаю вручную класс за классом, все работает. Однако, когда я пытаюсь заставить testng сделать это, он работает параллельно и прыгает между классами в соответствии с приоритетом теста, а не завершает сам класс. Класс a test1 class b test1 ....... Если я не хочу никакого распараллеливания, я хочу, чтобы он выполнялся как человек, выполняющий действия, класс за классом, а внутри класса выполняются тесты как приоритетные. Как можно Я заставляю testng работать таким образом. это мой xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">

<suite allow-return-values="true" name="sanitySuite" parallel="false" thread-count="1" verbose="1" >
    <test name="smoke"  preserve-order="true" >
        <parameter name="userName" value="selmadmin@gmail.com"/>
        <parameter name="password" value="bbb"/>
        <groups>
            <run>
                <include name="smokeTest"/>
             </run>
        </groups>

        <packages>
            <package name =".*"/>
        </packages>
        <classes>
            <class name="tests.classA"></class>
            <class name="tests.classB"></class>
            <class name="tests.classC"></class>
            <class name="tests.classD"></class>
            <class name="tests.classE"></class>
        </classes>
    </test>

    <!--<test name="jkljlkj">-->
        <!--<packages>-->
            <!--<package name=".*"/>-->
        <!--</packages>-->
    <!--</test>-->
</suite>

1 Ответ

0 голосов
/ 18 июня 2020

После добавления group-by-instance = "true" и parallel = "none" решено

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">

<suite allow-return-values="true" name="sanitySuite" parallel="none" thread-count="1" verbose="1" >
    <test name="Role page"  preserve-order="true" group-by-instances="true">
        <parameter name="userName" value="selmadmin@gmail.com"/>
        <parameter name="password" value="bbb"/>
        <groups>
            <run>
                <include name="smokeTest"/>
             </run>
        </groups>

        <packages>
            <package name =".*"/>
        </packages>
        <classes>
            <class name="tests.classA"></class>
            <class name="tests.classB"></class>
            <class name="tests.classC"></class>
            <class name="tests.classD"></class>
            <class name="tests.classE"></class>
        </classes>
    </test>

    <!--<test name="Regression1">-->
        <!--<packages>-->
            <!--<package name=".*"/>-->
        <!--</packages>-->
    <!--</test>-->
</suite>
...