1

Javaプログラム内でJUnit4テストを実行する方法を考えていました。基本的に-実行時のいくつかの条件に応じて、使用するテストランナーを決定する必要があります。Junit3を使用すると、TestCaseクラスのrunTestメソッドをオーバーライドできますが、JUnit4テストではTestCaseクラスが拡張されないため、オーバーライドするものがありません...実装する必要のあるメソッドがありますか...または他に...

4

2 に答える 2

0

私が抱えている問題は、各テストケースの前にメソッド(静的にすることはできません)を実行する必要があることです

この非静的メソッドがテストケースの前処理に関連するものである場合は、@Beforeテストクラスで使用するメソッドにアノテーションを付けることでこれを実現できます。の動作については、Junit4のドキュメントをご覧ください@Before

それ以外の場合は、JUnitテストクラスをトリガーするだけで、次のコードを使用できます。

Runner r = 
try {
  r = new BlockJUnit4ClassRunner(Class.forName(testClass));
} catch (ClassNotFoundException | InitializationError e) {  // FIX if necessary: JDK 7 syntax
  // handle
}
JUnitCore c = new JUnitCore();
c.run(Request.runner(r));

お役に立てば幸いです。

于 2012-04-12T15:37:09.607 に答える
0

サンプルコードは次のとおりです。

public void checkTests() throws org.junit.runners.model.InitializationError {
    checkTestClass((Class<?>) MyTestClss.class);
}

private void checkTestClass(Class<?> theClass) throws InitializationError {
    final RunNotifier notifier = new RunNotifier();
    notifier.addListener(new RunListener() {
        @Override
        public void testFailure(Failure failure) throws Exception {
            Assert.fail(failure.getMessage());

        }
    });

    final Runner runner = new BlockJUnit4ClassRunner(theClass);

    runner.run(notifier);
}
于 2010-04-19T07:20:12.210 に答える