Testng 使用组组测试依赖项

Testng 使用组组测试依赖项,testng,Testng,我有一个包含两个方法的类,它们属于两个不同的组: package foo.bar; import org.testng.annotations.Test; public class Five { private int counter = 0; @Test(groups = {"group1"}) public void testOne() { System.out.println("Counter value in group1:" + counter

我有一个包含两个方法的类,它们属于两个不同的组:

package foo.bar;
import org.testng.annotations.Test;

public class Five {
    private int counter = 0;
    @Test(groups = {"group1"})
    public void testOne() {
        System.out.println("Counter value in group1:" + counter);
    }

    @Test(groups = {"group2"})
    public void testTwo() {
        counter++;
        System.out.println("Counter value in group2 :" + counter);
    }
}
我创建了testng.xml文件来定义组和运行组之间的依赖关系

 <suite name="Sample 1">
    <test name="MySuite">
        <!-- filters testOne, but since it dependsOn non existent group it fails. -->
        <groups>
        <dependencies>
            <group name="group2" depends-on="group1"/>
        </dependencies>         
    </groups>
    <classes>
        <class name="foo.bar.Five"/>
    </classes>
</test>
例外是显而易见的

拥有组依赖关系的全部目的是根据属于某些其他组的其他@Test方法的执行状态,控制属于某些组的@Test方法的执行

依赖项必须具有依赖项

因此,在您的案例中,组3中必须至少存在一个@Test方法,属于组2的所有方法都依赖于该方法。如果group3中不存在方法,那么group2中的方法如何等待不存在的方法完成其执行

更多:


定义一个包含另一个组的组并不意味着方法属于group2也属于group3。它的意思是,group3的执行也将包括group2的方法。

您是否将任何testmethod标记为属于group3?否。正如您所看到的,group3只不过是从group1创建的。我的两个测试都通过了他们只有system.out.println。
<suite name="Sample 1">
        <test name="MySuite">
            <groups>
                <define name="group3">
                    <include name="group2"/>
                </define>
                <dependencies>
                    <group name="group2" depends-on="group3"/>
                </dependencies>
            </groups>
            <classes>
                <class name="foo.bar.Five"/>
            </classes>
        </test>
    </suite>
DependencyMap::Method "Five.testTwo()[pri:0, instance:oracle.sysman.test.sample.Five@48ae10cd]" depends on nonexistent group "group3"
<groups>
            <define name="group3">
                <include name="group2"/>
            </define>
...