【发布时间】:2014-06-26 05:37:01
【问题描述】:
每当我们在@Test注解的方法上指定priority和dependsOnMethods时,测试方法的执行顺序并不是按照优先级来的。为什么会这样?
这是演示问题的测试类:
package unitTest.TestNGTestCases;
import org.testng.annotations.Test;
public class TestNGTest1 {
@Test(priority=1)
public void t1()
{
System.out.println("Running 1");
}
@Test(priority=2,dependsOnMethods="t1")
public void t2()
{
System.out.println("Running 2");
}
@Test(priority=3,dependsOnMethods="t2")
public void t3()
{
System.out.println("Running 3");
}
@Test(priority=4)
public void t4()
{
System.out.println("Running 4");
}
}
实际输出:
Running 1
Running 4
Running 2
Running 3
===============================================
All Tests Suite
Total tests run: 4, Failures: 0, Skips: 0
===============================================
预期输出:
Running 1
Running 2
Running 3
Running 4
===============================================
All Tests Suite
Total tests run: 4, Failures: 0, Skips: 0
===============================================
测试执行的顺序应该是 t1, t2, t3, t4。为什么 t4 在 t1 之后执行,而 t2 和 t3 的优先级高于 t4?
TIA
【问题讨论】:
-
您使用的是哪个版本的 TestNG?根据the changes list,您的问题似乎已在 2011 年 8 月 18 日的 6.2 版中得到解决。
-
我使用的是 6.8.8 版本和 testNG eclipse 插件 6.8.6。你能试试上面的代码并证明它按预期工作吗?
-
很遗憾,我不使用 TestNG。
标签: java testing automation testng