Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing 如何在gradle中执行不在同一个包中的多个测试类?_Unit Testing_Gradle - Fatal编程技术网

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

Unit testing 如何在gradle中执行不在同一个包中的多个测试类?,unit-testing,gradle,Unit Testing,Gradle,我有以下的测试课程 com.baz.bar.Foo com.bar.foo.Baz com.foo.baz.Bar 我想执行com.baz.bar.Foo和com.bar.Foo.baz。我知道如何执行所有这些,以及如何执行其中一个。我不知道如何执行任意设置。在构建脚本中很容易做到: test { filter { filterTestsMatching "com.baz.bar.Foo", "com.bar.foo.Baz", ... } } 命令行等价物是g

我有以下的测试课程

  • com.baz.bar.Foo

  • com.bar.foo.Baz

  • com.foo.baz.Bar


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

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

    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项目提出很好的请求。

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

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

    您想做什么就做什么

    您想将类指定为命令行参数还是在生成脚本中?理想情况下,它位于命令行。不适用于“为命令行选项'--tests'提供了多个参数”消息基本情况是否适用于您?“梯度测试”执行所有测试?“梯度测试--测试a”“梯度测试--测试b”是否分别执行测试a和b?哪个操作系统?哪个贝壳?这适用于我们在Windows cmd和cygwin上的不同Windows系统。(使用powershell,您必须添加引号、括号和其他内容IIRC)基本案例对我来说很有用<代码>渐变测试--测试a工作,
    渐变测试--测试b
    工作。我和bashHuh在Ubuntu上,我会尝试在两个测试语句周围加上括号或引号。。。也许试试更别致的终端?