TestNG - 从不同的类导入/运行测试

时间:2012-11-29 09:08:46

标签: java testng

我的情景是:

public class ExampleTest extends AbstractExampleTest {
    @Test(dependsOnMethods={"someMethodFromAbstractExampleTest"}
    public void firstTest() {
        // Assert
    }

    // here I would like to call CommonTests
}

public class CommonTests {
    @Test
    public void sharedTest() {
        // Assert
    }
}

CommonTests存在的原因是它将包含重复的测试序列。我目前将ExampleTest中的信息传递给CommonTests的方式是通过似乎有效的静态来完成的,但可能不是最好的。

如果我根据TestNG文档以编程方式调用CommonTests,这样可以正常工作。我遇到的问题是结果没有记录在ExampleTest的运行器中。

@Test
public void actionBasedTest(ITestContext context) {
    TestListenerAdapter tla = new TestListenerAdapter();
    TestNG testng = new TestNG();
    testng.setTestClasses(new Class[] { ExampleAction.class });
    testng.addListener(tla);
    context.getSuite().addListener(tla);
    testng.run();
}

以上情况略好一些,但报告的内容仅限于“org.testng.TestRunner@####”,并且不会公开运行的测试方法。

所以我的问题是:我可以从另一个类(不是通过继承)运行测试并将结果记录到同一个监听器吗?

编辑:我想避免使用testng.xml。

1 个答案:

答案 0 :(得分:0)

回答上一个问题,您可以使用testng.xml运行任何类的测试,这样您就可以按照自己喜欢的方式构建测试。您可以在套件标记中指定侦听器,这将是用于所有类的侦听器。请参阅examples