2009-08-19 32 views

Odpowiedz

2

Nie ze wspólnego zadania mrówki.

Najlepiej napisz główną metodę, która uruchamia twój zestaw testów "ręcznie".

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 adnotacji może pomóc (z pewnymi naruszenia najlepszych praktyk moll API): dajesz swoją biegacz, i zastąpić run(RunNotifier notifier). Poprzez RunNotifier możesz użyć add * Listener-API, który jest obecnie oznaczony jako wewnętrzny. Powodzenia!

1

To jest trochę późno, ale możesz spróbować owijania swój RunListener do ant JUnitResultFormatter (od org.apache.ant:ant-junit):

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))); 
} 

// .... 

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

Powiązane problemy