android - Gradle Wrapper 4.6 无法识别测试过滤参数

标签 android testing gradle junit

由于无法识别 --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/

相关文章:

android - 像指南针一样旋转 ImageView(在别处设置 "north pole")

android - 下载的可执行文件无法在主机上执行

testing - 像 dispatch_async 这样的代码的单元测试。

javascript - Promise resolve 后如何正确测试 setTimeout

java - 如何在 Java 中记录未捕获的异常?

android - 如何接受Android Studio SDK许可?

java - Android 无法正确加载

android - XML 在一行中为所有边声明填充或边距

android - Crashlytics 崩溃报告提到了 XposedBridge

android - 更改通知栏颜色