2009-08-19 3 views

답변

2

개미의 junit 작업에서 가져온 것이 아닙니다.

"수동으로"테스트 스위트를 실행하는 메인 메소드를 작성하는 것이 가장 좋습니다. 당신이 당신의 자신의 러너를주고, run(RunNotifier notifier)를 오버라이드 (override) :

package test; 

import org.junit.runner.Request; 
import org.junit.runner.Result; 
import org.junit.runner.Runner; 
import org.junit.runner.notification.RunListener; 
import org.junit.runner.notification.RunNotifier; 

public class RollYourOwnTestRun { 

    public static void main(String[] args) { 
     Runner runner = Request.classes(StackTest.class).getRunner(); 
     RunNotifier notifier = new RunNotifier(); 
     Result result= new Result(); 
     RunListener listener= result.createListener(); 
     notifier.addListener(listener); 
     notifier.addListener(...); // add your listener 
     notifier.fireTestRunStarted(runner.getDescription()); 
     runner.run(fNotifier); 
     notifier.fireTestRunFinished(result); 
    } 

} 
1

@RunWith 주석 (약간의 API 베스트 프랙티스 위반에) 도움이 될 수. RunNotifier를 통해 현재는 내부 전용으로 표시된 add * Listener-API를 사용할 수 있습니다. 행운을 빕니다!

1

이 조금 늦게,하지만 당신은 (org.apache.ant:ant-junit에서) 개미의 JUnitResultFormatterRunListener 포장하려고 수 있습니다

import static org.apache.tools.ant.taskdefs.optional.junit.JUnitVersionHelper.getTestCaseClassName; 
import static org.apache.tools.ant.taskdefs.optional.junit.JUnitVersionHelper.getTestCaseName; 
import static org.junit.runner.Description.createTestDescription; 

public class MyJunitFormatter implements JUnitResultFormatter { 

private final MyListener delegate = new MyListener(); 

@Override 
@SneakyThrows(Exception.class) 
public void endTest(Test test) { 
    delegate.testFinished(
      createTestDescription(
        getTestCaseClassName(test), 
        getTestCaseName(test))); 
} 

// .... 

https://mail-archives.apache.org/mod_mbox/ant-user/201009.mbox/%[email protected]cehub.com%3E

를 참조하십시오
관련 문제