2011-09-07 6 views
5

단위 테스트를 실행할 때 Gradle은 테스트 자체를 변경하지 않고 여러 테스트를 병렬로 실행할 수 있습니다 (예 : 특수 주석, 테스트 실행기 등). 개미와 같은 것을 달성하고 싶습니다만, 어떻게 확신 할 수 없습니다.JUnit 테스트를 병렬로 실행

나는 this question을 보았지만 아무 대답도 정말 매력이 없습니다. 그들은 ant-contrib과 함께 해킹하거나, @ RunWith 어노테이션으로 설정된 특별한 주자, 몇몇 다른 특수 어노테이션 등을 포함합니다. 또한 TestNG를 알고 있지만 Eclipse 플러그인을 테스트로 마이그레이션 할 수 없습니다. 우리는 약 10,000 명을 가지고 있으므로 손으로하지는 않습니다!

Gradle에는 이러한 것들이 필요하지 않으므로 개미에서는 어떻게해야합니까? Gradle은 특별한 러너를 사용 합니다만, 그렇다면 JUnit 설정의 일부로 설정되며 매 테스트마다 언급되지 않습니다. 그렇다면 괜찮습니다. 나는 정말로 가서 c를 고치고 싶지 않다. 10,000 단위 테스트!

답변

6

Gradle은 엄격한 의미에서 특별한 JUnit 러너를 사용하지 않습니다. "간단히"는 여러 JVM을 스핀 업하고 (JUnit을 호출하여) 각각의 테스트 클래스 서브 세트를 실행하고 빌드를 실행하는 JVM에 결과를보고하는 정교한 테스트 태스크를 가지고 있습니다. 결과는 단일 JVM, 단일 스레드 테스트 실행처럼 보이도록 집계됩니다. 이는 자체 테스트 리스너를 정의하는 빌드에서도 작동합니다.

Ant에서 병렬 테스트를 실행하려면이 기능을 지원하는 Ant 태스크가 있어야합니다 (존재하는 지 확실하지 않음). 또 다른 방법은 Ant 빌드를 Gradle (ant.importBuild "build.xml")으로 가져 와서 Gradle 측에 테스트 작업을 추가하는 것입니다.

+0

흠, 흥미로운 아이디어입니다. 솔직히 말해서, Ant에 이미 존재하지 않는 것이 놀랍습니다. – dty

관련 문제