Testing 在测试套件中完成一些并行测试后运行测试

Testing 在测试套件中完成一些并行测试后运行测试,testing,automated-tests,testng,Testing,Automated Tests,Testng,在TestNG.XML中,给定并行测试A,B,C,我们只需要在完成两个测试A和B并与测试C并行(如果仍在运行)后运行测试D 更新 下面是所需的执行、随时间变化的测试 [1] [2] [3] [4] [5] A |------| B |----------| C |----------------| D |----------| tests run in parallel, points with number indicated the followin

在TestNG.XML中,给定并行测试
A
B
C
,我们只需要在完成两个测试
A
B
并与测试
C
并行(如果仍在运行)后运行测试
D

更新 下面是所需的执行、随时间变化的测试

 [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
[1][2][3][4][5]
A|------|
B|----------|
C|----------------|
D|----------|
测试并行运行,带有数字的点指示以下操作:
[1] 开始测试A、B和C。
[2] 测试A表面光洁度
[3] 测试B结束,测试D开始
[4] 测试C完成<我们不应该等待C完成到strt测试D>
[5] 试验D饰面
更新2018年8月24日我打开了一个问题


TestNG目前不支持这种行为,我必须解决这个问题。

使用
dependsOnMethods={“A”、“B”、“C”}
在D处使用@Test注释

@Test(description = "This is test D",dependsOnMethods = {"A","B","C"})

如果您谈论的是测试方法A、B、C、D,那么您可以通过@test annotation的dependsOnMethods或dependsonGroup来修复它

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>  
公共类类名{
@测试(组={“AB”})
public void testA(){}
@测试(组={“AB”})
public void testB(){}
@试验
public void testC(){}
@测试(dependsOnGroups={“AB”})
public void testD(){}
}

若您谈论的是测试,它是套件的子项,那个么似乎并没有办法管理测试之间的依赖关系。但是您仍然可以尝试使用group来管理不同测试中的测试方法,然后使用dependsOnGroups来管理组之间的依赖关系。

A
B
是testng.xml文件中的测试(不是测试方法),我还需要test
D
不要等待
C
完成,这样做的目的是节省时间,并在
A
B
完成后立即运行
D
。您不能在testng.xml中定义方法依赖关系,因此您也可以在这些测试中定义组,并在testng.xml中定义组依赖关系。另外,若你们不想等待C,就不要把它包含在同一个组中。