1

現在、Flexmojos プロジェクトを新しい Adob​​e Flex 4.8 でビルドする作業を行っています。問題は、4.8 では 1 つの機能が使用できなくなったことです。この SDK に対して単体テストを実行すると、ビルドが失敗します。失敗したテストをまとめて無効にすることもできますが、古い Flex SDK の重要な機能をテストするため、そのままにしておきたいと思います。

前提条件が満たされない場合にテストを自動的にスキップする方法はありますか? テストを実行するかどうかを決定するために呼び出されるメソッドを考えていました。または、環境変数を設定することもできます。他のオプションがあれば、私は聞いてうれしいです.

クリス

4

1 に答える 1

3

testNg でこれを行う方法の 1 つは、 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で他のリスナーもチェックする価値があります

于 2012-11-01T14:19:13.540 に答える