为什么TestNG在启动时初始化所有测试类

时间:2016-10-17 18:49:58

标签: java testng

我有一个非常简单的测试套件,类似于以下内容:

public abstract class AbstractTestClass {
    protected AbstractTestClass() {
        System.out.println(getClass().getSimpleName());
    }
}

@Test(groups = { "test1_test_group" })
public final class Test1 extends AbstractTestClass { ... }

@Test(groups = { "test2_test_group" })
public final class Test2 extends AbstractTestClass { ... }
<!-- testng.xml -->
<suite name="SimpleTestSuite">
    <test name="DummyTest">
        <groups>
            <run>
                <include name="test1_test_group" />
            </run>
        </groups>
        <packages>
            <package name="my.test.package.*" />
        </packages>
    </test>
</suite>

我不确定它是否是设计但是为什么TestNG在我想要执行的唯一测试组是test1_test_group时,在给定包中创建所有类的实例,即上述测试运行的输出如下:

Test1
Test2

我试图删除完整的&lt; packages&gt;标签用&lt; classes&gt;替换它列出单个类的标签,但它们的行为相同。报告的唯一一个接近这种情况的缺陷(虽然被拒绝)是https://github.com/cbeust/testng/issues/1075

1 个答案:

答案 0 :(得分:0)

更改您的testng xml文件。删除包,而不是使用如下类:

<suite name="SimpleTestSuite">
    <test name="DummyTest">
        <groups>
            <run>
                <include name="test1_test_group" />
            </run>
        </groups>
        <classes>
            <class name="your class with fully qualified name where tests are written" />
        </classes>
    </test>
</suite>