TestNG dependsOnGroups似乎不能在<run> <include>下工作

时间:2016-06-21 03:15:49

标签: testng

在TestNG 6.3.1~6.9.10中,我尝试在两个类之间创建依赖关系,如下所示。

class A {
    @Test(groups={"GA"})
    public void testA() {
    }
}

class B {
    @Test(groups={"GB"}, dependsOnGroups={"GA"})
    public void testB() {
    }
}

如果我只是在testng.xml中列出classA&amp; B,那就可以了。

<classes>
    <class name="pkg.A"></class>
    <class name="pkg.B"></class>
</classes>

如果我只想挑选属于&#34; GB&#34;并期望与之前的行为相同,

<groups>
    <run>
        <include name="GB" />
    </run>
</groups>
<classes>
    <class name="pkg.A"></class>
    <class name="pkg.B"></class>
</classes>

然后TestNg抱怨

  

DependencyMap :: Method&#34; B.testB()[pri:0,instance:pkg.B@250970c1]&#34;取决于不存在的群体&#34; GA&#34;。

为什么TestNg不识别GA组?如何在保持组依赖性的同时挑选出一些测试用例组?提前谢谢。

2 个答案:

答案 0 :(得分:0)

TestNG dependsOn *仅用于为特定运行订购测试。

testng.xml用于选择特定运行的测试。

如果您没有指定所需的所有内容,则可以忽略dependsOn *,因为测试已经完成。

如果未指定组,则所有组均为活动组。

查看documentation了解详情。

答案 1 :(得分:0)

此行为符合TestNG设计。如果您没有提供alwaysRun=true,TestNG会考虑硬依赖。在硬依赖的情况下,运行配置必须包括它所依赖的方法/组。请参阅dependency documentation