我想設置Junit測試來測試我的Java代碼在一個Android項目。我似乎無法讓它與Gradle構建一起工作。單元測試與JUnit Android與Gradle
我現在已經設置了一個測試作爲示例。我的項目是我使用Gradle移植的遺產,所以我定義了源集和結構,而不是將文件移動到新的目錄格式。
當我運行構建或只是UnitTest的輸出是構建成功,但它並沒有真正運行我的測試單元測試。 Android工作室似乎並沒有將文件識別爲java,也沒有在我的ExampleTest.java文件中顯示錯誤/代碼完成。
Project
-> Module
-> assets
-> build
-> gen
-> libs
-> res
-> src
-> tests
我gradle這個build文件:
buildscript {
repositories {
mavenCentral()
maven { url 'http://repo1.maven.org/maven2' }
maven { url 'http://download.crashlytics.com/maven' }
}
dependencies {
classpath 'com.android.tools.build:gradle:+'
classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+'
}
}
apply plugin: 'android'
apply plugin: 'crashlytics'
repositories {
mavenCentral()
}
android {
compileSdkVersion 20
buildToolsVersion '20.0.0'
defaultConfig {
minSdkVersion 10
targetSdkVersion 20
versionCode 47
versionName '2.1'
}
buildTypes {
release {
runProguard true
zipAlign true
proguardFile getDefaultProguardFile('proguard-android-optimize.txt')
proguardFile 'proguard-project.txt'
}
debug {
runProguard false
}
}
productFlavors {
defaultFlavor {
proguardFile 'proguard-project.txt'
}
}
signingConfigs {
debug {
storeFile file('../debug.keystore')
}
release {
storeFile file("XX")
storePassword "XX"
keyAlias "XX"
keyPassword "XX"
}
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
unitTest {
java.srcDir file('tests')
resources.srcDir file('test/resources')
}
}
}
sourceSets {
unitTest {
java.srcDir file('test')
resources.srcDir file('test/resources')
}
}
dependencies {
compile 'com.viewpagerindicator:library:[email protected]'
compile 'com.crashlytics.android:crashlytics:1.+'
unitTestCompile 'junit:junit:4.1+'
unitTestCompile files("$buildDir/intermediates/classes/debug")
}
configurations {
unitTestCompile.extendsFrom runtime
unitTestRuntime.extendsFrom unitTestCompile
}
task unitTest(type:Test, dependsOn: assemble) {
description = "run unit tests"
testClassesDir = project.sourceSets.unitTest.output.classesDir
classpath = project.sourceSets.unitTest.runtimeClasspath
}
// bind to check
build.dependsOn unitTest
您嘗試過robospock嗎? – Opal 2014-08-30 10:02:26
我真的很想用Java編寫我的單元測試 – serenskye 2014-09-01 08:47:05
您的build.gradle文件中有幾個地方可以進行「測試」。它應該是「測試」,而不是? – 2014-09-01 09:01:52