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