如何使用 SerenityRunner 和 Gradle 运行 用 'WithTagValuesOf' 注释的特定测试

How to run specific tests annotated with 'WithTagValuesOf' using SerenityRunner and Gradle

我正在尝试 运行 使用由 Serenity-BDD 框架提供的 'WithTagValuesOf' 注释的一组特定的 junit 测试。

根据 Serenity 教程,我可以找到与 Maven 相同的内容:

mvn clean verify -Dtags="release:sprint-2"

但我正在尝试为 Gradle 寻找类似的方法。例如:

gradle clean test --tests -Dtags="Test-Type:Smoke" aggregate

以上给出了以下错误:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':test'.
> No tests found for given includes: [tags=Test-Type:Smoke]

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

有人可以帮我解决这个问题吗?

我一发布这个问题就找到了答案(我的错)

我对为 JBehave 实现的类似问题提供的解决方案进行了调整。感谢 Shawn Boyle 的参考 https://groups.google.com/d/msg/thucydides-users/IFwX64zuFSw/vC_43Nl_C84J

这是我添加到构建文件中的代码。

build.gradle:

task copyPropsFile << {
    if(!project.hasProperty('environment')){
        ext.environment = 'dev'
    }

    copy{
        from '../conf/' + environment + '/properties/serenity.properties'
        into projectDir
    }

    if (project.hasProperty('tags')) {
        println "JUnit tags set to: $tags"

        ant.propertyfile(file: "$projectDir/serenity.properties") {
            entry(key: "tags", value: "$tags")
        }
    }
}

// Hook into the gradle processTestResources task to execute the copyPropsFile custom task
processTestResources{
    doFirst{
        copyPropsFile.execute()
    }
}

最后我 运行 我的测试使用

gradle clean test aggregate -Ptags="Test-Type:Smoke"