android guide on testing을 android gradle 플러그인으로 읽은 후 인스트루먼트 테스트를 실행하지 않는 POJO에 대해 JUnit 테스트를 설정하려고했습니다. 안드로이드에 의존하지 않는 코드에 대한 테스트는 매우 빠르며 (그리고 TDD를 용이하게해야한다는) 아이디어였습니다.Android/Gradle의 단위 테스트 설정 방법
이 작업을 수행하려면 build.gradle에서 소스 세트와 작업을 설정하는 표준 방법이 있습니까? 그것이 기본 질문입니다. 보조 질문은 아래의 시도에서 잘못되었습니다 ...
새로운 "test"폴더에서 간단한 JUnit 테스트 클래스로 실험하면서 Android Studio 0.4.2 및 Gradle 1.9를 사용하고 있습니다. . 작업이없는 이유
:android:assemble UP-TO-DATE
:android:compileUnitTestJava UP-TO-DATE
:android:processUnitTestResources UP-TO-DATE
:android:unitTestClasses UP-TO-DATE
:android:testPojo FAILED
* What went wrong:
Execution failed for task ':android:testPojo'.
> failed to read class file
/path/to/project/android-app/build/classes/unitTest/TestClass.class
내가 클래스가이 사실에 있음을 확인, 그래서에로 혼란 스러워요 : 여기에 지금까지 가지고,하지만 난 "Gradle을 testPojo"를 실행할 때이 결과를 얻을 것입니다 파일을 읽을 수 있습니다. 여기
는 build.gradle 파일입니다...
sourceSets {
unitTest {
java.srcDir file('src/test/java')
resources.srcDir file('src/test/resources')
}
}
dependencies {
...
unitTestCompile 'junit:junit:4.11'
}
configurations {
unitTestCompile.extendsFrom instrumentTestCompile
unitTestRuntime.extendsFrom instrumentTestRuntime
}
task testPojo(type: Test, dependsOn: assemble){
description = "Run pojo unit tests (located in src/test/java...)."
testClassesDir = sourceSets.unitTest.output.classesDir
android.sourceSets.main.java.srcDirs.each { dir ->
def buildDir = dir.getAbsolutePath().split('/')
buildDir = (buildDir[0..(buildDir.length - 4)] + ['build', 'classes', 'debug']).join('/')
sourceSets.unitTest.compileClasspath += files(buildDir)
sourceSets.unitTest.runtimeClasspath += files(buildDir)
}
classpath = sourceSets.unitTest.runtimeClasspath
}
check.dependsOn testPojo