1

JUnit4のテストスイートにプログラムでテストを追加する方法はありますか?

Junit3ではこれを行うことができます

TestSuite ts = new TestSuite();
ts.addTestSuite(a.class);
ts.addTestSuite(b.class);

JUnit4ではどうですか?

4

1 に答える 1

1

1つの方法は、Request#classes()を使用することです。

public static void main(String[] args) throws Exception {
    Request request = Request.classes(new Class<?>[] {Test1.class, Test2.class});

    JUnitCore jUnitCore = new JUnitCore();
    RunListener listener = new RunListener() {

        @Override
        public void testFailure(Failure failure) throws Exception {
            System.out.println("failure=" + failure);
        }

    };
    jUnitCore.addListener(listener);
    jUnitCore.run(request);
}

RunListenerでは、testFailure以外のものをオーバーライドできます。

テストをビルドにさらに統合する場合は、Suiteを拡張します

public static class DynamicSuite extends Suite {
    public DynamicSuite(Class<?> klass, RunnerBuilder builder) throws InitializationError {
        super(builder, klass, new Class<?>[] {Test1.class, Test2.class});
    }
}

使用するコンストラクターは、スイートの呼び出し方法によって異なります。上記はEclipseで機能します。

次に、空のクラスに@RunWith(DynamicSuite.class):で注釈を付けます。

@RunWith(DynamicSuite.class)
public class DynamicTestSuite {
}
于 2012-07-26T12:18:54.997 に答える