【问题标题】:How do i invoke cucumber test project with gradle?如何使用 gradle 调用黄瓜测试项目?
【发布时间】:2025-12-29 23:50:06
【问题描述】:

我对 gradle 很陌生,我很困惑如何调用我的项目,以便我可以运行我的 Cucumber 测试。创建 build.gradle 文件后我该怎么办? 我的 build.gradle 看起来像这样 应用插件:'java'

dependencies {
    testCompile 'info.cukes:cucumber-java:1.2.4'
    testCompile 'info.cukes:cucumber-junit:1.2.4'
    testCompile 'junit:junit:4.12'
}

repositories {
    mavenCentral()
}

project.ext {
    cucumberVersion = '1.2.4'
    junitVersion = '4.11'
}
test {
    testLogging.showStandardStreams = true
    systemProperties System.getProperties()
}

【问题讨论】:

    标签: testing cucumber automated-tests build.gradle


    【解决方案1】:

    您创建一个使用 Cucumber 运行器执行 Cucumber 的 JUnit 类。

    @RunWith(Cucumber.class)
    public class RunCukesTest {
    }
    

    在您的测试目录中。

    我在这里更详细地描述它:http://www.thinkcode.se/blog/2015/01/30/bdd-with-cucumberjvm-at-geecon-tdd-2015

    另一种选择是从此处提供的 Java 框架项目开始:https://github.com/cucumber/cucumber-java-skeleton

    然后按照http://www.thinkcode.se/blog/2015/12/26/gradle-and-cucumberjvm中列出的步骤进行操作

    【讨论】:

      【解决方案2】:

      只是为了扩展 Thomas 我想提的很好的答案,如果您有用于特定测试套件的自定义 TestRunner 类(如前面提到的 RunCukesTest 或 RegressionTestRunner),则可以添加自定义任务以运行确切的运行器:

      task runRegressionTests(type: Test) << {
      include "RegressionTestRunner.class"
       }
      

      然后很容易通过 gradle task 运行回归测试:

      gradle runRegressionTests
      

      如果您有多个用于不同套件(RegressionTestRunner、SanityTestRunner 等)的运行器类 - 为测试任务编写自定义模式非常有用,该模式将识别并运行已定义的运行器类。

      例如:

      runRegressionTests,runSanityTests。

      【讨论】:

        【解决方案3】:

        使用 Gradle Cucumber JVM 插件。它运行良好,并且集成了漂亮的 html 报告。

        https://github.com/commercehub-oss/gradle-cucumber-jvm-plugin

        【讨论】:

          【解决方案4】:

          在 build.gradle 文件中添加以下内容

          test {
              testLogging.showStandardStreams = true
              systemProperties System.getProperties()
          }
          

          它为 gradle clean build 调用了我的黄瓜测试

          【讨论】: