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

时间:2014-08-04 18:17:48

标签: unit-testing gradle

我有以下测试类。

  1. com.baz.bar.Foo

  2. com.bar.foo.Baz

  3. com.foo.baz.Bar

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

2 个答案:

答案 0 :(得分:6)

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

gradle test --tests com.baz.bar.Foo --tests com.bar.foo.Baz --tests com.foo.baz.Bar

会做你想做的事

答案 1 :(得分:4)

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

test {
    filter {
        filterTestsMatching "com.baz.bar.Foo", "com.bar.foo.Baz", ...
    }
}

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

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

增强--tests以支持以逗号分隔的值可能会为Gradle项目提供良好的拉取请求。