Android 构建工具 1.1.0,单元测试文件夹?
Android build tools 1.1.0, unit test folder?
我最近将 google 的最新工具安装到我的 android 项目中:
buildscript {
repositories {
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.1.0'
}
}
allprojects {
repositories {
jcenter()
}
}
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
defaultConfig {
applicationId "com.xxx"
minSdkVersion 10
targetSdkVersion 21
versionCode 200
versionName "2.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
signingConfigs {
debug {
...
}
release {
...
}
}
buildTypes {
release {
...
}
debug {
...
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
// ---- Tests with robolectric
testCompile 'com.google.guava:guava:14.0.1'
testCompile 'junit:junit:4.+'
testCompile 'org.robolectric:robolectric:2.4'
testCompile 'org.mockito:mockito-all:2.0.2-beta'
// ---- Tests with Espresso
androidTestCompile ('com.android.support.test.espresso:espresso-core:2.0') {
exclude module: 'hamcrest-core'
}
androidTestCompile 'org.hamcrest:hamcrest-core:1.1'
androidTestCompile 'org.hamcrest:hamcrest-integration:1.1'
androidTestCompile 'org.hamcrest:hamcrest-library:1.1'
androidTestCompile ('com.android.support.test:testing-support-lib:0.1') {
exclude module: 'hamcrest-core'
}
androidTestCompile 'com.android.support.test.espresso:espresso-contrib:2.0'
androidTestCompile('junit:junit-dep:4.10') {
exclude module: 'hamcrest-core'
}
}
在那之前,我曾经在 jvm 中使用 com.github.jcandksolutions.gradle:android-unit-test:2.1.1
来 运行 我的 robolectric 测试。
正如 google 对他们的新构建工具所说:"New source folders recognized as unit tests: src/test/java, src/testDebug/java, src/testMyFlavor/java etc."
但是正如您在下面看到的,我的测试文件夹未被识别为源文件夹。它适用于 com.github.jcandksolutions.gradle:android-unit-test:2.1.1
,但不再适用于新的构建工具:
我在这里缺少什么?谢谢
只需按照http://tools.android.com/tech-docs/unit-testing-support启用实验单元测试并将测试工件切换到单元测试。那么你的单元测试文件夹将被识别。
当您遇到更多问题时,这可能会有所帮助 http://nenick-android.blogspot.de/2015/02/android-studio-110-beta-4-and.html
前几天我遇到了类似的问题,只是我能够在 Android Studio 中 运行 Robolectric 测试正常,但无法从命令行运行。对我有用的是以下内容。
1) 运行 ./gradlew clean assembleDebug test
(而不仅仅是 clean test
)
(现在,它会从主包中找到源代码,但我会得到 this problem)
2) 将此添加到 build.gradle 文件:android.sourceSets.test.java.srcDirs += "build/generated/source/r/debug"
我找到了解决方法,就是在 IDE 的左上角切换 Test Artifacts。在这个屏幕上只有 "Android Instrumentation Tests" 可用,因为我降级了我的 android 工具,但是使用工具 1.1.0+ 你应该看到不同类型的测试以获得 IDE 将它们识别为源文件夹。
如果有用的话,我设置了一个样板项目,允许通过使用切换构建变体来使用单元测试和 Espresso 测试。您不需要使用任何第三方插件。
我最近将 google 的最新工具安装到我的 android 项目中:
buildscript {
repositories {
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.1.0'
}
}
allprojects {
repositories {
jcenter()
}
}
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
defaultConfig {
applicationId "com.xxx"
minSdkVersion 10
targetSdkVersion 21
versionCode 200
versionName "2.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
signingConfigs {
debug {
...
}
release {
...
}
}
buildTypes {
release {
...
}
debug {
...
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
// ---- Tests with robolectric
testCompile 'com.google.guava:guava:14.0.1'
testCompile 'junit:junit:4.+'
testCompile 'org.robolectric:robolectric:2.4'
testCompile 'org.mockito:mockito-all:2.0.2-beta'
// ---- Tests with Espresso
androidTestCompile ('com.android.support.test.espresso:espresso-core:2.0') {
exclude module: 'hamcrest-core'
}
androidTestCompile 'org.hamcrest:hamcrest-core:1.1'
androidTestCompile 'org.hamcrest:hamcrest-integration:1.1'
androidTestCompile 'org.hamcrest:hamcrest-library:1.1'
androidTestCompile ('com.android.support.test:testing-support-lib:0.1') {
exclude module: 'hamcrest-core'
}
androidTestCompile 'com.android.support.test.espresso:espresso-contrib:2.0'
androidTestCompile('junit:junit-dep:4.10') {
exclude module: 'hamcrest-core'
}
}
在那之前,我曾经在 jvm 中使用 com.github.jcandksolutions.gradle:android-unit-test:2.1.1
来 运行 我的 robolectric 测试。
正如 google 对他们的新构建工具所说:"New source folders recognized as unit tests: src/test/java, src/testDebug/java, src/testMyFlavor/java etc."
但是正如您在下面看到的,我的测试文件夹未被识别为源文件夹。它适用于 com.github.jcandksolutions.gradle:android-unit-test:2.1.1
,但不再适用于新的构建工具:
我在这里缺少什么?谢谢
只需按照http://tools.android.com/tech-docs/unit-testing-support启用实验单元测试并将测试工件切换到单元测试。那么你的单元测试文件夹将被识别。
当您遇到更多问题时,这可能会有所帮助 http://nenick-android.blogspot.de/2015/02/android-studio-110-beta-4-and.html
前几天我遇到了类似的问题,只是我能够在 Android Studio 中 运行 Robolectric 测试正常,但无法从命令行运行。对我有用的是以下内容。
1) 运行 ./gradlew clean assembleDebug test
(而不仅仅是 clean test
)
(现在,它会从主包中找到源代码,但我会得到 this problem)
2) 将此添加到 build.gradle 文件:android.sourceSets.test.java.srcDirs += "build/generated/source/r/debug"
我找到了解决方法,就是在 IDE 的左上角切换 Test Artifacts。在这个屏幕上只有 "Android Instrumentation Tests" 可用,因为我降级了我的 android 工具,但是使用工具 1.1.0+ 你应该看到不同类型的测试以获得 IDE 将它们识别为源文件夹。
如果有用的话,我设置了一个样板项目,允许通过使用切换构建变体来使用单元测试和 Espresso 测试。您不需要使用任何第三方插件。