我目前正致力于使用新的Adobe Flex 4.8构建Flexmojos项目。问题是,4.8使用一个功能不再可用。如果我针对此sdk运行单元测试,则构建将失败。我可以完全禁用运行测试,但我想保留它们,因为它们测试旧的Flex SDK的重要功能。
如果不满足前提条件,是否有办法自动跳过测试?我正在考虑调用一些方法来决定是否应该执行测试。或者,我可以设置一个环境变量。如果还有其他选择,我很乐意听到。
克里斯
答案 0 :(得分:3)
我可以想到在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
检查其他听众