2016-02-01 63 views
0

我有一個包含大量測試用例的巨大項目。有些測試用例假設只能在特定環境下工作,有些則不適用。所以我試圖跳過或禁用不屬於該環境的測試。通過註釋變壓器禁用特定測試:TestNG

我使用Annotation Transformers來覆蓋@Test的行爲。

這裏是

package com.raghu.listener 

public class SkipTestsTransformer implements IAnnotationTransformer { 
    public void transform(ITestAnnotation annotation, Class testClass, 
      Constructor testConstructor, java.lang.reflect.Method testMethod){ 

//   I intend to do this later 
//   if(someCondition){ 
//    // Do something. 
//   } 
       System.out.println("Inside Transform"); 
    } 
} 

截至目前,我只是想打印我的變壓器代碼。

我有許多軟件包和類,我必須施加此變壓器。

如何以及在哪裏開始這個課程?

請建議任何更好的方法來做同樣的事情。

在此先感謝

回答

1

IAnnotationTransformer是一個監聽器。你不需要實例化,testng會爲你做。根據您的測試環境,您可以通過xml或通過服務加載器以任何列出的方式here.指定偵聽器。

如果您的測試用例中沒有標記組,那麼我認爲這是將啓用屬性設置爲false的方法。還有另外一種方法可以跳過IInvokedMethodListener中的測試,但我沒有看到其中一個好處。

+0

非常感謝niharika_neo。我正在爲此而苦苦掙扎。事實證明,我們不能通過IAnnotationTransformer的@Listener註釋來指定一個監聽器。它應該包含在xml文件中。 –

+0

可以請你告訴我如何發送參數到annoation變壓器的實現。 –

+0

我不認爲在iannotationtransformer中有這樣的方法。你可以在iinvokedmethodlistener中獲得它 –

相關問題