我的情况是:
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。