2012-09-04 37 views
3

我使用@Factory注释将动态生成的JUnit测试套件转换为TestNG。通过扫描包含多个测试规范文件(用DSL编写)的目录并将它们加载到知道如何执行它们的测试类中来生成​​测试。测试类别具有一个名为test的方法@Test,实施org.testng.ITest并根据推荐重写getTestName()。但是,在TestNG Eclipse UI中,仅显示了工厂和test的单个执行(虽然它按预期执行了好几次)。使用JUnit时,我将每个规范的名称列为单独的测试。这是非常重要的,因为一些测试规范可能会失败,我需要查看所有失败(这在我的TestNG Eclipse UI中不起作用)。Eclipse插件中动态生成的TestNG测试的名称

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

+0

[如何在TestNG中使用不同名称生成测试?](https://stackoverflow.com/questions/2743676/how-to-generate-tests-with-different-names-in-testng) –

回答

4

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

+1

这对我很有用,但TestNG视图中的测试名称混杂在其他信息中。我想出了一个稍微不同的解决方案来解决这个问题(请参阅我的答案)。 –

4

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