5

当通过 Maven 运行时,我需要将其他设置传递给空手道,这些设置将在 karate-config.js 中可用。目前我可以使用 karate.env 属性传入一个字符串 - 是否有必要将我的参数编码为 JSON 对象并通过这个属性传递它们,或者我可以执行以下操作:

mvn test -DargLine="-Dkarate.env='production' -Dkarate.clientid='1234567890' ...

这样我就可以在 karate-config.js 中引用 karate.clientid,我可以将它保存到返回的配置对象中。

我确定我在这里遗漏了一些明显的东西......

4

3 回答 3

4

是的 !请参阅文档karate.properties['karate.clientid']

于 2017-10-10T16:55:33.430 回答
1

我找到了一种方法,但我没有使用示例。我做了什么:

  • 在 Gradle 中:

    task api(type:Test) {
       systemProperty "karate.clientId", System.properties.getProperty("karate.clientId")...
     }
    
  • karate-config.js(中var config):

    clientId: karate.properties['karate.clientId'] || 'xyz'
    
  • 在命令行中:

    '-Dkarate.clientId=abc'
    

如果我没有clientId在我的命令行中设置,clientId将会是'xyz'.

于 2019-01-28T13:48:48.977 回答
0

您可以像这样传递参数

mvn test -D clientId=123 -D baseurl=test.com

并在 karate-config.js 中将它们称为

karate.properties['clientId'] and karate.properties['baseurl']
于 2021-11-24T14:59:00.700 回答