ユニットカスタムランナーでは、テストアクションの実行前後にアクションを実行したいので、 です。実行前と実行後のカスタムJunitランナー
このようにしっかりしているのは、それを達成するためのよりクリーンな方法でしょうか?
public class SomeCustomRunner extends BlockJUnit4ClassRunner {
private int m_testMethodIndex = 0;
private int m_testMethodsCount = 0;
private boolean m_sessionSetup = false;
@Override
protected void runChild(final FrameworkMethod method, RunNotifier notifier) {
if(m_sessionSetup == false) {
m_sessionSetup = true;
beforeTestClass(); //->> DO MY STUFF HERE
}
super.runChild(method, notifier);
m_testMethodIndex++;
if(m_testMethodIndex == m_testMethodsCount) {
afterTestClass(); //->> DO MY STUFF HERE
}
}
@Override
protected List<FrameworkMethod> getChildren() {
List<FrameworkMethod> methods = super.getChildren();
m_testMethodsCount = methods.size();
return methods;
}
}
。この複雑なケースのために私はそれを必要とするかもしれません –
JUnit APIはこのケースをサポートしていないようです。しかし、マルチスレッドなどのテストケースで例外が発生した場合のソリューションの動作を確認することはできません。 –
この "ハック"は何か悪いことがわかっているかもしれません。 –