1
실제로 BlockJUnit4ClassRunner의 runChild() 메서드를 재정의하고 싶었 기 때문에 클래스 (MyRunner.java)를 만들고 ExJended BlockJUnit4ClassRunner를 만들고 runChild() 메서드를 재정의했습니다. BlockJUnit4ClassRunner 대신에 우리 자신의 주자를 전달하는 방법
public class MyRunner extends BlockJUnit4ClassRunner
{
@Override
public void runChild(final FrameworkMethod method, RunNotifier notifier) {
System.out.println("<--------- Inside MyRunner.runChild() -------->");
// my code goes here
}
}
는하지만 내 오버라이드 (override) 방법으로 이동하지 않는 전화는 (심지어 MyRunner.java에 오지 않는) 및 BlockJUnit4ClassRunner.runChild() 메소드 만 호출합니다. 디버깅 한 결과 JunitCore.run (Runner runner) 메서드에 전달 된 러너가 BlockJUnit4ClassRunner이기 때문에 이것이 발견되었습니다. 잘 모르겠습니다 만 JUnit4Builder.runnerForClass() 메소드에서 온 것 같습니다.
// This is JUnit4Builder.runnerForClass(Class<?>) method
public Runner runnerForClass(Class<?> testClass) throws Throwable
{
return new BlockJUnit4ClassRunner(testClass);
}
는 또한)를 JUnit4Builder.runnerForClass을 (무시하려하지만 그 또한 도움이되지 않았다. MyRunner 나 BlockJUnit4ClassRunner.runChild() 메소드를 오버라이드하는 방법이 있다면 알려주실 수 있습니다.
덕분에 실제로 일을 많이. 따라서 며칠간 떨어져 있었으므로 테스트를 할 수 없었지만 오늘은 검증을 마쳤으며 예상대로 작동했습니다. – user85