空手道:通过命令行传递动态参数值不起作用

时间:2018-05-23 13:17:18

标签: javascript karate

当我在命令行上运行空手道集成测试时,我试图从命令行传递一个URL。我看了this并尝试做同样的事情,但到目前为止还没有运气。

我有这个{ "error": { "code": "20111", "message": "OData Feature not implemented. {0}.", "innerError": { "request-id": "0d737ff3-ab68-4284-83b2-91a69216ebe7", "date": "2018-05-23T12:56:21" } } } 文件

karate-config.js

我像这样使用gradle运行测试

function karateconf() {
  karate.configure('connectTimeout', 5000);
  karate.configure('readTimeout', 5000);
  var config = { baseURL: 'http://localhost:8080' };

  if (karate.env == 'ci') {
    config.baseURL = karate.properties['base.URL'];
    karate.log('*******************************', karate.properties['base.URL']);
  }

  return config;
}

这是空手道日志

./gradlew integrationTest -Dkarate.env=ci  -Dbase.URL=http://someurl:8080

我无法弄清楚我在这里缺少什么。

1 个答案:

答案 0 :(得分:1)

Gradle?文档中提及了这一点:https://github.com/intuit/karate#command-line - 看起来您需要将base.URL添加到您的gradle构建文件中,方法如下:

  

对于gradle,您必须扩展测试任务以允许cucumber.options   要传递给Cucumber-JVM(否则它们会被消耗掉   gradle本身)。为此,请添加以下内容:

test {
    // pull cucumber options into the cucumber jvm
    systemProperty "cucumber.options", System.properties.getProperty("cucumber.options")
    // pull karate options into the jvm
    systemProperty "karate.env", System.properties.getProperty("karate.env")
    // ensure tests are always run
    outputs.upToDateWhen { false }
}