リフレクションを使用するのは最善の方法ではありませんが、次のようにすることができます。
public static void main(String[] args) throws Exception {
Computer computer = new Computer();
JUnitCore jUnitCore = new JUnitCore();
Field field = JUnitCore.class.getDeclaredField("fNotifier");
field.setAccessible(true);
RunNotifier runNotifier = (RunNotifier) field.get(jUnitCore);
runNotifier.pleaseStop();
jUnitCore.run(computer, BeforeAfterTest.class, AssertionErrorTest.class);
}
これにより、org.junit.runner.notification.StoppedByUserExceptionがスローされます。
より柔軟性や制御が必要な場合は、上記を実行するためのより良い方法は、必要なビットを JUnitCore からクラスにコピーするだけで、通知機能やリスナーなどを直接制御できます。これが最も優れていますそれを行う方法。JUnitCore は実際には拡張できるようには設計されていません。