我想设置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