我的情景是:
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。
答案 0 :(得分:0)
回答上一个问题,您可以使用testng.xml运行任何类的测试,这样您就可以按照自己喜欢的方式构建测试。您可以在套件标记中指定侦听器,这将是用于所有类的侦听器。请参阅examples。