由于无法识别 --tests 参数,我无法使用 gradle wrapper 过滤测试:
❯ ./gradlew test --continuous --tests "pt.joaomneto.titancompanion.adventure.twofm.TWOFMAdventureStateTest"
Continuous build is an incubating feature.
> Configure project :
TitanCompanion: 'annotationProcessor' dependencies won't be recognized as kapt annotation processors. Please change the configuration name to 'kapt' for these artifacts: 'com.android.databinding:compiler:3.2.0-alpha10' and apply the kapt plugin: "apply plugin: 'kotlin-kapt'".
FAILURE: Build failed with an exception.
* What went wrong:
Problem configuring task :test from command line.
> Unknown command-line option '--tests'.
* Try:
Run gradlew help --task :test to get task usage details. Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 1s
如您所见,帮助输出中没有这样的参数。
❯ ./gradlew help --task :test
> Configure project :
TitanCompanion: 'annotationProcessor' dependencies won't be recognized as kapt annotation processors. Please change the configuration name to 'kapt' for these artifacts: 'com.android.databinding:compiler:3.2.0-alpha10' and apply the kapt plugin: "apply plugin: 'kotlin-kapt'".
> Task :help
Detailed task information for :test
Path
:test
Type
Task (org.gradle.api.Task)
Description
Run unit tests for all variants.
Group
verification
我正在使用 gradle 4.6
❯ ./gradlew --version
------------------------------------------------------------
Gradle 4.6
------------------------------------------------------------
Build time: 2018-02-28 13:36:36 UTC
Revision: 8fa6ce7945b640e6168488e4417f9bb96e4ab46c
Groovy: 2.4.12
Ant: Apache Ant(TM) version 1.9.9 compiled on February 2 2017
JVM: 1.8.0_162 (Oracle Corporation 25.162-b12)
OS: Mac OS X 10.13 x86_64
我在这里做错了什么?文档明确指出我可以使用这个参数来过滤测试:https://docs.gradle.org/4.6/userguide/java_plugin.html#test_filtering
你能帮我吗?
编辑:这只发生在 Android 项目中。在标准的 kotlin+spring 项目中使用相同的 gradle 版本它可以正常工作......
最佳答案
这么久之后回答我的问题:
这个问题是因为 android 插件使用测试任务作为更具体任务的保护伞,并且不识别 --tests
过滤器参数。所以解决这个问题的方法是指定所需的测试任务,在我的情况下必须是:
./gradlew testDebugUnitTest --tests pt.joaomneto.titancompanion.adventure.twofm.TWOFMAdventureStateTest
如此处解释:https://developer.android.com/studio/test/command-line
关于android - Gradle Wrapper 4.6 无法识别测试过滤参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51040312/