2014-11-04 71 views
0

我们刚刚开始使用TestNG来实施我们的测试。现在我们已经定义了四个组来安排我们的测试(即GroupA,GroupB,GroupC和GroupD)。如何防止TestNG组中的拼写错误?

TestNG有可能通过使用这些组来防止拼写错误吗?

@Test(groups = {"GroupA", "GoupB"})  

我们建议怎么可能在“组B”(缺少R)上的拼写错误的开发者?也可以只允许为组预定义名称是可以的。

一个想法是定义代码模板,它可以通过template.xml包含到Eclipse中。但是这似乎不是对开发者友好的。

任何其他的想法,将不胜感激。

在此先感谢。

回答

0

只需使用常数...

改变你可以有专门的类象常量:

public class TestType { 
    private static final String GROUP_A = "GroupA"; 
    private static final String GROUP_B = "GroupB" 

    /** 
    * Avoid instantiation 
    */ 
    private TestType() { 
    } 
} 

比:

@Test(groups = {TestType.GROUP_B, TestType.GROUP_A})  

这对我们很好。 唯一的小问题(如果你使用Maven)是你必须在每个单独的项目中都有这样的类,或者将它提取到一些常用的测试Jar中。因为Maven默认不允许共享测试依赖关系。 (我知道可以在具有专门的Maven补丁插件的项目之间共享测试瓶,但不会再次走这条路。)

在核心评论期间促进使用这些常量。

顺便说一句,错过的测试应该出现在较低的测试覆盖率。

+0

感谢Ikrnac为您的回应,我们已经开始使用这个解决方案,并会看到,如果这适用于所有开发人员。如果没有,我们将使用Bhupesh的建议方式。 谢谢。我将把这个问题标记为答案。 – JavaSoftwareTester 2014-11-07 13:43:44

0

使用IAnnotationTransformer接口。通过ITestAnnotation对象中的setGroups方法覆盖变换方法。在config,xml,csv或任何其他文件的某个地方维护 以外的组。这是我认为的唯一方法。由于@Test annonation只能通过IAnnotationTransformer

+0

感谢您的建议。 我说得对吗,IAnnotationTransformer和ITestAnnotation是TestNG开发中的接口吗?所以你的意思是改变TestNG的实现? 我们希望找到一种方法来使用现有的TestNG工具,但否则我们会试一试。 – JavaSoftwareTester 2014-11-05 16:01:08

+0

您不需要更改soucece代码,只需要实现这些接口,因为按照testng doc,这是唯一的解决方案 – Bhupesh 2014-11-05 18:27:09