【问题标题】:Using Karate with Gradle but without (Java)-Runner在 Gradle 但没有 (Java)-Runner 的情况下使用空手道
【发布时间】:2018-03-22 21:39:09
【问题描述】:

我正在尝试使用空手道,因此创建了一个.feature 和一个config.properties 文件。当然,我不想在每个项目中都签入空手道的源代码,所以我想使用 Gradle 下载空手道,然后运行。

不幸的是,我无法让它工作。我的build.gradle 文件如下所示:

apply plugin: 'java'

test {
    systemProperty "cucumber.options", System.properties.getProperty("cucumber.options")
    systemProperty "karate.env", System.properties.getProperty("karate.env")
    outputs.upToDateWhen { false }
}

sourceSets {
    test {
        resources {
            srcDir file('features')
            include 'rest.feature'
        }
    }
}

dependencies {
  testCompile 'com.intuit.karate:karate-junit4:0.7.0'
  testCompile 'com.intuit.karate:karate-apache:0.7.0'
}

wrapper {
  gradleVersion = 4.6
}

当我运行 ./gradlew test -Dtest=<featureName> 时,.feature 文件只是被复制到 build/resources/test 而不是运行套件。

您能告诉我如何正确设置它吗?我不想使用带有@RunWith(Karate.class) 注释的Java 类,因为这将是每个项目中不必要的样板代码。

【问题讨论】:

    标签: karate


    【解决方案1】:

    我个人认为您应该使用 Java 类,因为您获得了 dev-mode JUnit report 的优势 - 但这只是我的 2c。

    无论如何,我都不是 Gradle 专家,但来自社区的这个 Gradle 示例可能会帮助您弄清楚您是否遗漏了什么:https://github.com/intuit/karate/blob/master/karate-demo/build.gradle

    它有一些不必要的依赖,你当然应该忽略它们。

    编辑:刚刚意识到您希望在没有 any Java runner 的情况下运行该功能,抱歉,这在命令行中是不可能的。您可以从 IntelliJ 和 Eclipse 中“右键单击并运行”(安装了正确的插件,请参阅文档)——这是大多数团队每天都在做的事情。

    如果您进行一些研究,您应该能够编写 一个 Java 类,该类可以采用命令行参数或系统属性并运行您指定的功能。恕我直言,Java 运行器更方便(键入更少)或仅使用 IDE 支持。

    【讨论】:

      猜你喜欢
      • 2018-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      相关资源
      最近更新 更多