2014-09-10 2 views
0

com.sun.codemodel.JCodeModel을 사용하여 각각에 대해 연관된 JUnits와 함께 거의 1000 개의 클래스를 생성합니다.com.sun.codemodel.JCodeModel.build()가 완료 될 때까지 기다릴 수있는 방법

또한 개별 JUnit 테스트 사례를 실행하는 JUnit Test Suite를 생성합니다.

이 코드 생성 프로젝트를 완료하려면 final Result result = JUnitCore.runClasses(AllTests.class);을 사용하여 프로그래밍 방식으로 JUnit 테스트 슈트를 실행하고 싶습니다.

내가 가지고있는 어려움은 JUnit 테스트 슈트의 실행이 코드 생성과 동기화되지 않는다는 것입니다. com.sun.codemodel.JCodeModel.build() 메서드가 내 코드 생성을 완료하고 JUnit 테스트 슈트 만 실행할 때이를 감지 할 수 있어야합니다.

com.sun.codemodel.JCodeModel.build() 메서드가 완료되면 어떻게 알 수 있습니까?

+0

JUnit 테스트와 관련하여 JCodeModel 코드 생성을 어떻게 실행하고 있습니까? –

답변

2

은 JCodeModel하여 클래스를 확장 한 후 빌드 방법 오버라이드 (override) : 빌드 기능이 완료된 후

@override 
... build(){ 
super.build(); 
startTest(); 
} 

는 다음 시작해야합니다.

+0

제안 해 주셔서 감사합니다. 그러나 이것은 모든 생성 된 클래스가 빌드 될 때까지 기다릴 필요가 없으므로 내 문제를 해결하지 못했습니다. 또한 컴파일해야합니다. 이클립스 내에서이 프로젝트를 실행하고 있습니다. 그 중 하나는 이클립스 프로젝트를 프로그래밍 방식으로 (그리고 기다리거나 완료하기 위해) 참조 할 필요가 있거나 수동으로 테스트 스위트를 포기하고 실행해야하는 것처럼 보입니다. – Hector

+1

JavaCompiler compiler = ToolProvider.getSystemJavaCompiler() ; compiler.run (null, null, null, sourceFile.getPath()); –

관련 문제