使用testng for webdriver逐个运行测试类

时间:2012-11-20 04:48:58

标签: java maven selenium webdriver testng

我编写了几个测试类来使用testng测试Web应用程序。每个测试类都是独立的。(我使用Java,maven和selenium webdriver)

我在testng.xml中定义了我的测试类和测试组,如下所示。

<test name="generalTest">
        <groups>
            <run>
                <include name="login"  />
                <include name="signUp"  />
                <include name="profileCreation"  />

            </run>
        </groups>

        <classes>
            <class name="my.test.Test_1_LoginTestCases"/>
            <class name="my.test.Test_2_SignUpTestCases"/>
            <class name="my.test.Test_3_CreatePeopleProfileTestCases"/>

        </classes>
    </test>

我在命令行中运行此命令来运行测试类。

mvn test -DsuiteXmlFile=/src/testng.xml -Dgroups=login,signUp,profileCreation

我使用了testng“priority”标签来定义在测试类中运行测试用例的顺序。

但问题是当我使用上面的命令运行testng.xml时,它同时运行所有测试类(并行)。如果有10个测试类,那么它同时打开10个Web浏览器实例并尝试运行每个测试类同一时间。

我需要的是运行第一个测试类,当它完成时,然后使用上面的maven命令开始运行第二个测试类。

任何人都可以帮我这么做吗?我非常感谢你的帮助。

2 个答案:

答案 0 :(得分:1)

只需在xml中添加一个parallel =“false”属性,如下所示:

<test name="generalTest" parallel="false">

答案 1 :(得分:0)

我解决了这个问题! :) 我已经在所有测试类上放置了相同的优先级范围。 例如:在每个测试类中,我都设置了优先级1。 然后它尝试同时运行优先级为1的测试用例。

修正:

根据我们整个运行测试套件所需的顺序,在每个测试类中使用不同的优先级范围。 例如:因为我需要运行第一个测试类,然后在完成后再运行第二个测试类, 我为第一个测试类设置了优先级范围1到50,并且