我有一个@BeforeSuite注释的方法。

public class MySuiteTest {

    @BeforeSuite
    public static void doSomethingVeryMandatory() {
        // say, boot up an embedded database
        // and create tables for JPA-annotated classes?
    }
}

public class MySingleTest {

    @Test
    public void doSomething() {
        // say, tests some MyBatis mappers against the embedded database?
    }
}

当我测试整个测试时,
$ mvn clean test

一切安好。 @BeforeSuite运行和@Test运行。

当我尝试测试一个类(class)时
$ mvn -Dtest=MySingleTest clean test

不调用doSomethingVeryMandatory()

这正常吗?

最佳答案

您的@BeforeSuite和@Test在不同的类中。当您运行一个类时,testng会生成一个默认的suite.xml,其中只包含一个类。因此,您的@BeforeSuite对testng不可见。您可以在测试类中扩展MySuiteClass,也可以创建套件文件并按照注释中的建议运行套件文件。

10-06 14:45