2012-11-01 135 views
0

我目前正致力於讓Flexmojos項目使用新的Adobe Flex 4.8進行構建。問題是,有4.8個功能不再可用。如果我對這個sdk運行unittests,構建將失敗。我可以一起禁用令人失望的測試,但我想保留它們,因爲它們測試了舊版Flex SDK的重要功能。TestNG自動禁用測試

如果不滿足前提條件,是否有辦法自動跳過測試?我正在考慮調用一些方法來決定是否應該執行測試。或者我可以設置一個環境變量。如果還有其他選擇,我會很高興聽到。

克里斯

回答

2

一個我能想到TestNG中這樣做的方法是使用IAnnotationTransformer聽衆。基本上你可以在運行時操作註解。這裏是一個例子:

監聽器:

public class SampleAnnotationTransformer implements IAnnotationTransformer { 

@Override 
public void transform(ITestAnnotation iTestAnnotation, Class aClass, Constructor constructor, Method method) { 

    if(method != null){ 
     if(!isThisTestCompatible(method)){ 
      //diable the test case. 
      iTestAnnotation.setEnabled(false); 
     } 
    } 

} 

private boolean isThisTestCompatible(Method method){ 
    //your logic goes here... 
    return false; 
} 
} 

配置上述TestNG中聽者,如下所示:

<suite name="Suit" verbose="1"> 
<listeners> 
    <listener class-name="SampleAnnotationTransformer" /> 
</listeners> 

//test cases... 

值得檢查其他收聽以及在http://testng.org/doc/documentation-main.html#testng-listeners

+0

喂......這聽起來很棒......我想深入瞭解這一點:-)感謝指針:-) –

+0

這就是我將要推薦的。 –