Testing 为什么新的gradle测试过滤功能不适用于我的构建脚本?

Testing 为什么新的gradle测试过滤功能不适用于我的构建脚本?,testing,gradle,filtering,Testing,Gradle,Filtering,我正在从事一个具有以下结构的“项目”: proj - dbfit-junit/module - db1 - db2 提供一些背景信息:所有这些“模块”(db1、db2)都有JUnit测试,这些测试使用FitnessRunner将它们集成到竹子中 我的gradle脚本如下所示: apply plugin: 'java' repositories { mavenCentral() } dependencies { compile files(fileTre

我正在从事一个具有以下结构的“项目”:

proj
  - dbfit-junit/module
    - db1
    - db2
提供一些背景信息:所有这些“模块”(db1、db2)都有JUnit测试,这些测试使用FitnessRunner将它们集成到竹子中

我的gradle脚本如下所示:

apply plugin: 'java'


repositories {
    mavenCentral()
}

dependencies {
    compile files(fileTree("lib"))
    testCompile "junit:junit:4.11"
}

ext {
    dbFitModuleDir = file("dbfit-junit/module")
    dbFitModules = dbFitModuleDir.listFiles({f -> f.isDirectory()} as java.io.FileFilter).collect{it.name}
}

dbFitModules.each { module ->
    sourceSets.create("${module}SourceSet") {
        java.srcDir new File(dbFitModuleDir, module)
        compileClasspath = sourceSets.main.output + configurations.testRuntime
        runtimeClasspath = output + sourceSets.main.output + configurations.testRuntime
    }

    task "dbFit${module.capitalize()}"(type: Test) {
        testClassesDir = sourceSets."${module}SourceSet".output.classesDir
        classpath = sourceSets."${module}SourceSet".runtimeClasspath
    }
}

task wrapper(type: Wrapper) {
    gradleVersion = '1.10'
}
到目前为止,一切正常,我能够动态创建特定于模块的gradle任务并执行测试

然而,有一件事对我来说根本不起作用。我从中了解到,有一个新特性叫做“测试过滤”,但它不会影响我从命令行调用的任何任务(例如gradlew dbFitDb1--tests*DataIntegrity)

虽然我应用了--tests过滤器,但我的所有测试都会执行。因此,我想知道我的脚本是否有问题,或者我是否必须启用测试过滤等


谢谢任何提示

发现,如果在JUnit测试中添加@RunWith注释,过滤器将无法工作。Gradle Akle的人承认了这个问题,并将很快解决它。同时,我将使用“test.single”使其工作


它应该能正常工作。也许先尝试一个简单的测试项目。您可以尝试的另一件事是将命名模式放在引号中。您好@PeterNiederwieser,看起来,
@RunsWith
注释是过滤器不工作的原因。当我删除带有注释的
@RunsWith时,过滤器工作。我在github中添加了一个示例项目,以防您一开始就想看一看。我认为
FitnessSuite.class
runner会导致此错误,但它也不能与
BlockJUnit4ClassRunner.class
一起使用,谢谢。我们刚刚在自己的构建中遇到了类似的问题。也许这是新的
--tests
功能中的一个bug。我们会调查的。目前,您可以始终使用旧的
-DtestTaskName.single=*DataIntegrity
。(根据您的shell,您可能需要引用整个参数。)是否有指向Gradle bug报告的链接?