Android Project에 Spek 적용시 발생하는 이슈

가이드 문서대로 설정을 했는데, 아래와 같은 오류가 발생했다.

Could not find method testRuntime()

Error:(41, 0) Could not find method testRuntime() for arguments [org.jetbrains.spek:spek-junit-platform-engine:1.0.89] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

동일한 문제가 github issue에 등록되어 있어서 살펴봤더니, testRuntime은 gradle java plugin에서만 동작한다고 한다. testRuntime을 testCompile로 변경하면 해결되지만, 다른 이슈가 발생한다.

Error:Task with name ‘testClasses’ not found in project ‘:app’.

Error:Task with name 'testClasses' not found in project ':app'.

해당 오류는 JUnit5의 JUnit platform plugin의 이슈라고 한다. 해당 이슈는 해결되었고, JUnit 5.0.0-M4 Milestone에 포함된 상태이다. 현재 기준, JUnit 최신버젼이 5.0.0-M2이니, 1~2달 이내 배포되지 않을까 싶다.

그 전까지는 JUnit4 based runner를 사용하면 해결된다.

  • gradle.build에 org.junit.platform:junit-platform-runner depencey를 추가하고
  • Spec(Test)의 class 위에 @RunWith(JUnitPlatform::class) 를 붙여준다.

위의 이슈를 해결한 샘플 코드를 github에 올려두었다. app/build.gradle 파일샘플 테스트코드를 참고하면 된다.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.