3

我使用@Factory注释将动态生成的 JUnit 测试套件转换为 TestNG。通过扫描包含多个测试规范文件(以 DSL 编写)的目录并将它们加载到知道如何执行它们的测试类中来生成​​测试。测试类有一个@Test名为的方法,按照建议test实现org.testng.ITest和覆盖。getTestName()

但是,在 TestNG Eclipse UI 中,只显示了工厂和单次执行test(尽管按预期执行了多次)。使用 JUnit,我将每个规范的名称列为单独的测试。这非常重要,因为几个测试规范可能会失败,我需要查看所有失败(这在我的 TestNG Eclipse UI 中不起作用)。

如何使用 TestNG 实现类似的功能?我使用 Eclipse TestNG 插件 6.7.0 和 testng 6.7。

4

2 回答 2

4

尝试在您的测试类中扩展 XmlTest 并调用 setName()。我扩展了 XmlSuite 并使用 setName 来命名我的“测试套件”,这是一个定义了多个测试的类,并且对我有用。事实上,我只是尝试了我在同一堂课上的建议,现在它被称为具有正确名称的测试。我不确定为什么 ITest 接口被忽略,因为我也尝试过这种方法但没有成功。

于 2012-09-06T01:07:49.420 回答
4

正如 carlin.scott 建议的那样,扩展XmlTest可以解决这个问题。但是,我覆盖toString()返回测试名称(而不是调用setName)。这样做的好处是 TestNG 视图中的测试名称更易于阅读。默认情况下,它包含附加信息,例如参数和元组。

于 2012-09-07T04:26:23.547 回答