0

いくつかの動的にロードされたクラス (のインスタンスClass<TestCase>) があります。これらのテストを Maven 経由で実行する必要があります ( mvn verify)。今、私はそれを行う方法を考えています。私が知っているのは、私ができることだけです:

Class<TestCase>[] classes = createTests();
JUnitCore junit = new JUnitCore();
junit.addListener(new TextListener(System.out));
junit.run(classes);

これは結果をコンソールに出力するだけです。すべてのテスト ケースの個々のテストのレポートが必要です (たとえば、パラメーター化されたランナーのように、Jenkins で)。正しい方向に向けてください。カスタムランナーを作成する必要があると思います。

テスト クラスは、サード パーティのライブラリから生成されます。残念ながら、以下は機能しません(何もしません):

((TestCase) classes[0].newInstance()).run()

ありがとう。

4

1 に答える 1

0

だから私はいくつかのRTFMを行い、簡単な解決策を持ってきました。RunNotifierフィールドを持つRunListenerクラスを作成し、すべてのメソッドをオーバーライドして、notifierの同等のfire *メソッドに委任し、次のrunメソッドを使用してカスタムランナーを作成しました。

@Override
public void run(RunNotifier runNotifier) {
    try {
        Class<?>[] classes = createTests();
        JUnitCore junit = new JUnitCore();
        junit.addListener(new MyListener(runNotifier));
        junit.run(classes);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

テストはこのクラスで開始されます。

@RunWith(MyRunner.class)
public class SomeTest {
}
于 2012-06-11T16:09:31.930 に答える