2012-04-12 7 views
9

API를 사용하여 JUnit Test Suite를 호출하려고합니다. 나는 다음과 같은 사용하여 테스트 클래스를 스위트 수 있다는 사실을 알고 :JUnit4를 사용하여 프로그래밍 방식으로 테스트 슈트를 실행하는 방법은 무엇입니까?

@RunWith(Suite.class) 
@Suite.SuiteClasses({ 
    Test1.class, 
    Test2.class, ... 
}) 

그러나, 자바 API를 사용하여 전체 제품군을 트리거 할 수있는 방법은 예를 들어 JUnitCore를 사용하여, 거기?

는 예를 들어, 다음 코드를 사용하여 테스트를 트리거 할 수 있습니다

Runner r = 
try { 
    r = new BlockJUnit4ClassRunner(Class.forName(testClass)); 
} catch (ClassNotFoundException | InitializationError e) { 
    // handle 
} 
JUnitCore c = new JUnitCore(); 
c.run(Request.runner(r)); 

업데이트 :는 API에서

, 스위트 클래스 자체가 따라서, 주자 것 같다 다음 코드가 작동하는 것 같습니다.

Suite suite = new Suite(klass, new RunnerBuilder() { 
... // Implement methods 
}); 
JUnitCore c = new JUnitCore(); 
c.run(Request.runner(suite)); 

그러나 권장 접근 방식인지 또는 t 그는 위의 코드.

답변

12

그냥 JUnitCore에 스위트 클래스의 이름을 지정합니다

Computer computer = new Computer(); 

JUnitCore jUnitCore = new JUnitCore(); 
jUnitCore.run(computer, MySuite.class); 
+0

Matthew에게 감사드립니다! 나는 이것을 분명히 시도 할 것이다. 그 동안 내 업데이트에 코드 스 니펫에 대한 권장 사항이 있습니까? – Neel

4

할 수 있습니다 또한 명령 프롬프트를 사용

자바 org.junit.runner.JUnitCore 테스트 클래스 이름으로

+5

나는 이것이 "프로그램 적으로"자격이 있다고 생각하지 않습니다. – oers

+1

runtime.exec를 사용하여 호출하는 경우 –

+2

또는 JunitCore.main (testClassName) –