Gradle 中的并行任务未完成 (connectedAndroidTest)
Parallel tasks in Gradle not finishing (connectedAndroidTest)
我在 gradle.properties
中开启了 org.gradle.parallel=true
。我正在 运行 设置后端 Google 云模块,并并行执行一些 Espresso 测试的 connectedAndroidTest。测试成功,任务正常,呈绿色(见图),但连接的测试任务从未真正完成自身或打印该行,也不会继续执行队列中的下一个任务。
如果我 运行 任务自行结束并打印该行。
我的根 build.gradle 文件:
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
google()
}
}
// Task to set up GCE, runs paid flavor test and shuts down the server.
task configureTest {
dependsOn 'startBackend', 'runInstrumentedTest', 'stopBackend'
doLast {
println 'Tests carried out and local server shut down'
}
}
task startBackend {
dependsOn ':backend:appengineRun'
}
// Run InstrumentedTest only in paid flavor as there is no interstitial ad.
task runInstrumentedTest {
mustRunAfter 'startBackend'
dependsOn ':app:connectedPaidDebugAndroidTest'
doLast {
println 'The test finished.'
}
}
task stopBackend
mustRunAfter 'runInstrumentedTest'
dependsOn ':backend:appengineStop'
}
为避免任何阻塞,请尝试以守护进程模式启动后端,看看它是否能帮助您正确完成测试。为此,请在后端的 build.gradle
文件中添加以下内容:
task startBackend {
project(":backend").afterEvaluate { backend ->
backend.extensions.appengine.daemon = true
}
// ...
}
有关详细信息,请参阅以下 post:
我在 gradle.properties
中开启了 org.gradle.parallel=true
。我正在 运行 设置后端 Google 云模块,并并行执行一些 Espresso 测试的 connectedAndroidTest。测试成功,任务正常,呈绿色(见图),但连接的测试任务从未真正完成自身或打印该行,也不会继续执行队列中的下一个任务。
如果我 运行 任务自行结束并打印该行。
我的根 build.gradle 文件:
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
google()
}
}
// Task to set up GCE, runs paid flavor test and shuts down the server.
task configureTest {
dependsOn 'startBackend', 'runInstrumentedTest', 'stopBackend'
doLast {
println 'Tests carried out and local server shut down'
}
}
task startBackend {
dependsOn ':backend:appengineRun'
}
// Run InstrumentedTest only in paid flavor as there is no interstitial ad.
task runInstrumentedTest {
mustRunAfter 'startBackend'
dependsOn ':app:connectedPaidDebugAndroidTest'
doLast {
println 'The test finished.'
}
}
task stopBackend
mustRunAfter 'runInstrumentedTest'
dependsOn ':backend:appengineStop'
}
为避免任何阻塞,请尝试以守护进程模式启动后端,看看它是否能帮助您正确完成测试。为此,请在后端的 build.gradle
文件中添加以下内容:
task startBackend {
project(":backend").afterEvaluate { backend ->
backend.extensions.appengine.daemon = true
}
// ...
}
有关详细信息,请参阅以下 post: