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

时间:2018-08-21 01:23:41

标签: testing automated-tests testng

在TestNG.XML中,给定 parallel 测试ABC,我们仅在完成以下操作后才运行测试D测试AB,并与测试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当前不支持这种行为,我必须解决。

2 个答案:

答案 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来管理组之间的依赖关系。