如何跨测试实例传输依赖TestNG方法的调用?

时间:2016-06-15 15:29:36

标签: testng

我正在使用TestNG Factory来创建测试类的多个测试实例。测试类有多个测试方法,每个测试方法都需要连续执行(即每个测试方法都依赖于测试类中以前的测试方法)。

当我运行包含通过我的工厂方法创建的测试类的多个测试实例的测试套件时,首先运行所有第一个测试方法,然后运行所有第二个测试方法,然后运行所有第三个测试方法,等等

我想要的是让每个测试实例中的所有测试方法尽快完成。即第一个测试实例中的第一个测试方法运行,然后运行第二个测试方法,依此类推第二个测试方法,然后第二个测试实例启动。

我尝试使用dependsOnMethods以及priority,但似乎无法获得我想要的行为。

如何跨测试实例传输依赖TestNG方法的调用?

1 个答案:

答案 0 :(得分:2)

来自documentation

  

默认情况下,依赖方法按类分组。例如,如果   方法// initialize the tooltips & default labels mWidgetInfo.forEach((k, v)-> { // no need to switch on the service // disable click events on the checkboxes // as they should be read only v.forEach((k1, widgetPair)-> { widgetPair.getKey().setTooltip( new Tooltip("Connect ID")); CheckBox checkBox = widgetPair.getValue(); checkBox.setTooltip(new Tooltip("Servicing Connection")); checkBox.setOpacity(1); }); }); 取决于方法b(),并且您有几个实例   包含这些方法的类(因为数据的工厂   提供者),那么调用顺序如下:

a()
     

在所有实例调用它们之前,TestNG不会运行a(1) a(2) b(2) b(2)   b()方法。某些情况下可能不需要这种行为   场景,例如测试登录和退出网络   各国的浏览器。在这种情况下,你想要的   以下订购:

a()
     

对于此排序,您可以使用XML属性signIn("us") signOut("us") signIn("uk") signOut("uk") 。   此属性在group-by-instances<suite>:view上有效   sourceprint?

<test>