6
使用android gradle插件閱讀android guide on testing之後,我想爲我的POJO設置JUnit測試,這些測試不能通過儀器測試運行。這個想法是,不依賴於Android的代碼的測試應該非常快速(並且促進TDD)。如何爲Android/Gradle設置單元測試
有沒有一種標準的方法來建立一個源代碼集和任務build.gradle來完成這個?這是主要問題,第二個問題是我的下面的嘗試有什麼問題...
我正在使用Android Studio 0.4.2和Gradle 1.9,在新的「測試」文件夾中試驗一個簡單的JUnit測試類。這裏是我到目前爲止,但是當我運行「gradle這個testPojo」我得到這樣的結果:
: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
我驗證了類其實那裏,所以我很困惑,爲什麼任務不能夠讀取文件。
這裏是的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