9

JUnitソース自体を調べることなく(私の次のステップ)、すべてのテストで@RunWithを設定しなくても、すべてのテストで使用されるデフォルトのランナーを設定する簡単な方法はありますか?ユニットテストは山ほどありますが、すべてのファイルを変更することなく、全面的にサポートを追加できるようにしたいと考えています。

理想的には、-Djunit.runner="com.example.foo"のようなものを期待しています。

4

3 に答える 3

2

これをグローバルに定義することは不可能だと思いますが、独自のmain関数を作成することがオプションである場合は、コードを使用して同様のことを行うことができます。カスタムを作成して、テストクラスと一緒にRunnerBuilder渡すことができます。Suite

Class<?>[] testClasses = { TestFoo.class, TestBar.class, ... };
RunnerBuilder runnerBuilder = new RunnerBuilder() {
    @Override
    public Runner runnerForClass(Class<?> testClass) throws Throwable {
        return new MyCustomRunner(testClass);
    }
};
new JUnitCore().run(new Suite(runnerBuilder, testClasses));

これは、EclipseのようなUIテストランナーとは統合されませんが、一部の自動テストシナリオではオプションになる可能性があります。

于 2013-08-23T22:27:10.457 に答える
1

JUnitは、ランナーのグローバル設定をサポートしていません。基本クラスで@RunWithを隠すことはできますが、これはおそらくあなたの状況では役に立ちません。

于 2011-05-13T02:01:46.913 に答える
0

達成したいことによっては、カスタムを使用してテストの動作にグローバルに影響を与えることができる場合がありますRunListener。Maven Surefireプラグインを使用して構成する方法は次のとおりです。http://maven.apache.org/plugins/maven-surefire-plugin/examples/junit.html#Using_custom_listeners_and_reporters

于 2011-12-16T09:47:10.030 に答える