我目前正在尝试使用此库在Android上运行ui测试。 https://github.com/facebook/screenshot-tests-for-android
我使用以下方式运行测试:
./gradlew verifyMode screenshotTests
在目录的根目录。
但是,我想要运行的是:
./gradlew test
我希望它可以运行屏幕截图测试以及我的ui测试。这可能是todo吗?我当前的构建文件:
buildscript {
repositories {
jcenter()
mavenLocal()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.0'
classpath 'com.facebook.testing.screenshot:plugin:0.4.2'
}
}
apply plugin: 'com.android.application'
apply plugin: 'com.facebook.testing.screenshot'
android {
compileSdkVersion 24
buildToolsVersion '24.0.3'
defaultConfig {
applicationId "sample"
minSdkVersion 16
targetSdkVersion 22
versionCode 1
versionName "1.0"
testInstrumentationRunner "sample.TestRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.android.support:support-v4:24.2.0'
compile project(':library')
androidTestCompile 'com.android.support.test:runner:0.4'
androidTestCompile 'com.azimolabs.conditionwatcher:conditionwatcher:0.1'
androidTestCompile 'com.android.support.test:rules:0.4'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
androidTestCompile 'com.google.dexmaker:dexmaker-mockito:1.0'
androidTestCompile 'com.google.dexmaker:dexmaker:1.0'
androidTestCompile 'org.mockito:mockito-core:1.10.17'
androidTestCompile 'com.android.support:support-annotations:24.2.1'
}
答案 0 :(得分:0)
Gradle执行指定为命令行参数及其依赖项的任务。如果您只想在命令中指定test
任务,但仍然执行任务verifyMode
和screenshotTests
,则可以将这些任务注册为test
任务的依赖项:
test {
dependsOn 'verifyMode', 'screenshotTests'
}
但是,请注意,现在test
任务的每次执行也会导致verifyMode
,screenshotTests
及其各自的依赖项运行。由于test
任务是build
任务的依赖项,因此调用gradle build
也会运行verifyMode
和screenshotTests
,这可能是您不想要的。作为解决方案,您可以定义虚拟任务,该任务收集您的所有测试任务:
task allTests {
dependsOn 'test', 'verifyMode', 'screenshotTests'
}
现在你可以调用gradle allTests
,Gradle将只执行你想要执行的任务。