下面是我在Eclipse中的项目结构:
->测试类
----> AccountTest(方法优先级从1-6开始)
----> BillingTest(方法优先级从7-13开始)
----> HomePageTest(唯一的方法优先级是17)
----> SupportTest(方法优先级从14-16开始)
以上所有测试类都具有按上述顺序以递增顺序设置优先级的方法。
现在,当我右键单击testclasses包并将其作为Testng运行时。它从HomePageTest开始执行。
我将测试方法的优先级设置如下:
@Test(priority=6, dataProvider="Setup")
我希望按每个方法定义的优先级执行,因此优先级为1的方法应首先执行,而不管其属于哪个类。
答案 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运行文件中使用方法,请不要设置优先级。