如何在gradle中执行不在同一个包中的多个测试类?

Jac*_*maw 10 unit-testing gradle

我有以下测试类.

  1. com.baz.bar.Foo

  2. com.bar.foo.Baz

  3. com.foo.baz.Bar

我想执行com.baz.bar.Foocom.bar.foo.Baz.我知道如何执行所有这些以及如何执行其中一个.我不知道如何执行任何任意设置.

小智 9

Gradle支持多个--tests语句,即:

gradle test --tests com.baz.bar.Foo --tests com.bar.foo.Baz --tests com.foo.baz.Bar
Run Code Online (Sandbox Code Playgroud)

会做你想要的

  • 对于“为命令行选项'--tests'提供了多个参数”的消息对我不起作用 (4认同)

Pet*_*ser 6

在构建脚本中很容易做到:

test {
    filter {
        filterTestsMatching "com.baz.bar.Foo", "com.bar.foo.Baz", ...
    }
}
Run Code Online (Sandbox Code Playgroud)

等效的命令行是gradle test --tests com.baz.bar.Foo(或只是--tests Foo),但是据我所知,这里仅支持单个类(更确切地说是单个模式)。

如果需要传递多种模式的能力,则可以自己编写脚本。例如,您可以读取从命令行通过传递的系统属性-Dtest.filter=Foo,Bar,Baz,将值拆分为各个部分,然后将其输入filterTestsMatching

增强--tests支持逗号分隔的值可能会对Gradle项目提出很好的请求。