我使用@Factory
注释将动态生成的JUnit测试套件转换为TestNG。通过扫描包含多个测试规范文件(用DSL编写)的目录并将它们加载到知道如何执行它们的测试类中来生成测试。测试类有一个名为@Test
的{{1}}方法,实现test
并按建议覆盖org.testng.ITest
。
但是,在TestNG Eclipse UI中,只显示了工厂和getTestName()
的单个执行(尽管它按预期执行了几次)。使用JUnit,我将每个规范的名称列为单独的测试。这非常重要,因为几个测试规范可能会失败,我需要查看所有失败(这在我的TestNG Eclipse UI中不起作用)。
如何实现与TestNG类似的功能?我使用Eclipse TestNG插件6.7.0和testng 6.7。
答案 0 :(得分:4)
尝试在测试类中扩展XmlTest并调用setName()。我扩展了XmlSuite并使用setName来命名我的“测试套件”,这是一个在其中定义了多个测试的类,这对我有用。事实上,我只是尝试了我在同一个类上建议的内容,现在它被称为具有正确名称的测试。我不确定为什么ITest界面被忽略,因为我也尝试了这种方法而没有成功。
答案 1 :(得分:4)
正如carlin.scott建议的那样,扩展XmlTest
可以解决这个问题。但是,我覆盖toString()
以返回测试名称(而不是调用setName
)。这样做的好处是TestNG视图中的测试名称更易于阅读。默认情况下,它包含其他信息,如参数和元组。