找不到Gradle DSL方法:test()

Eri*_*uth 5 unit-testing gradle android-studio

试图build.gradle在Android-Studio 1.2中的文件末尾添加以下代码(如本文所述):

test {
    testLogging {
        events "passed", "skipped", "failed", "standardOut", "standardError"
    }
}
Run Code Online (Sandbox Code Playgroud)

但得到了:

Error:(40, 0) Gradle DSL method not found: 'test()'
Possible causes:
- The project 'xxxxx' may be using a version of Gradle that does not contain the method.
- The build file may be missing a Gradle plugin.
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

use*_*637 15

gradle文档:https://docs.gradle.org/current/dsl/org.gradle.api.tasks.testing.Test.html

表示'test'任务来自java插件:

apply plugin: 'java' // adds 'test' task
Run Code Online (Sandbox Code Playgroud)

这就像你说的com.android.application插件冲突.

我终于找到了如何做到这一点.您可以将其应用于"Test"类型的所有任务,而不是将日志记录更改应用于测试任务(仅适用于java插件),如下所示:

//Test Logging
tasks.withType(Test) {
    testLogging {
        events "started", "passed", "skipped", "failed"
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,当您运行时./gradlew test,应该在处理测试时记录这些事件.

  • 你摇滚兄弟!仅供我未来使用我:将其置于任何其他闭包之外(即不在android {}块内) (3认同)