2014-11-04 21 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