TestNG测试未按照优先级执行

时间:2019-01-28 18:50:19

标签: selenium selenium-webdriver testng

下面是我在Eclipse中的项目结构:

->测试类

----> AccountTest(方法优先级从1-6开始)

----> BillingTest(方法优先级从7-13开始)

----> HomePageTest(唯一的方法优先级是17)

----> SupportTest(方法优先级从14-16开始)

以上所有测试类都具有按上述顺序以递增顺序设置优先级的方法。

现在,当我右键单击testclasses包并将其作为Testng运行时。它从HomePageTest开始执行。

我将测试方法的优先级设置如下:

@Test(priority=6, dataProvider="Setup")

我希望按每个方法定义的优先级执行,因此优先级为1的方法应首先执行,而不管其属于哪个类。

2 个答案:

答案 0 :(得分:1)

运行具有优先级的多个类中存在的所有测试的正确方法是通过testng文件运行那些测试。因此,将所有类名称写在testng.xml文件中,然后通过在软件包资源管理器->运行方式-> TestNG Suite中右键单击它来运行testng文件。您的测试用例将根据设置的优先级运行,而与它们属于的类无关。

您的testng.xml应该如下所示:

<test name="TestSuiteName">
    <classes>
        //Insert the whole path of the classes here like
        <class name="packageName.AccountTest" /> 
        <class name="packageName.BillingTest" />
        <class name="packageName.HomePageTest" />
        <class name="packageName.SupportTest" />
    </classes>
</test>

答案 1 :(得分:0)

TestNG按优先级顺序运行测试用例。如果测试方法没有优先级,则默认情况下,TestNG会将优先级设置为0。在您的情况下,在HomePageTest类中,可能有一些方法的优先级为0。要么设置所有方法的优先级,要么在xml运行文件中使用test方法设置为按给定顺序运行

 <test name="DummyTest">
  <classes>
     <class name="apitestset.inventory.Test">
                <methods>
                    <include name="create"/>
                    <include name="update"/>
                    <include name="get"/>
                    <include name="check"/>
                    <include name="initiate"/>
                    <include name="confirm"/>
                    <include name="extend"/>
                </methods>
            </class>
<classes>

这里的testclass有7种方法,它们按照xml运行文件中给出的顺序运行。如果要在xml运行文件中使用方法,请不要设置优先级。