在TestNG.XML中,给定 parallel 测试A
,B
,C
,我们仅在完成以下操作后才运行测试D
测试A
和B
,并与测试C
并行(如果仍在运行)。
更新 这是所需的执行,随着时间的推移进行测试。
[1] [2] [3] [4] [5]
A |------|
B |----------|
C |----------------|
D |----------|
tests run in parallel, points with number indicated the following actions:
[1] Tests A, B and C are started.
[2] Test A finishes
[3] Test B finishes, Test D started <the desired behaviour>
[4] Test C finish < we SHOULD NOT wait C finish to strt Test D>
[5] Test D finish
更新24-08-2018 我打开了一个问题here。
TestNG当前不支持这种行为,我必须解决。
答案 0 :(得分:0)
在D处将dependsOnMethods = {"A","B","C"}
与@Test注释一起使用。
@Test(description = "This is test D",dependsOnMethods = {"A","B","C"})
答案 1 :(得分:0)
如果您正在谈论测试方法A,B,C,D。然后,您可以通过@Test批注的dependsOnMethods或dependsOnGroups对其进行修复。
public class ClassName{
@Test(groups = { "AB"})
public void testA() {}
@Test(groups = { "AB"})
public void testB() {}
@Test
public void testC() {}
@Test(dependsOnGroups={"AB"})
public void testD() {}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="test suite">
<test name="test" parallel="methods">
<classes>
<class name="here.is.your.ClassName" />
</classes>
</test>
</suite>
如果您谈论的是套件的子级测试,那么似乎无法管理测试之间的依赖关系。但是您仍然可以尝试使用组来管理不同测试中的测试方法,然后使用dependsOnGroups来管理组之间的依赖关系。