通过命令行通过 Maven 将附加参数传递给 karate-config.js
Pass additional parameters to karate-config.js via command line via Maven
我有额外的设置需要在 运行 时通过 Maven 传递给 Karate,这些设置将在 karate-config.js 中可用。目前我可以使用 karate.env 属性 传递一个字符串 - 是否有必要将我的参数编码为 JSON 对象并通过这个 属性 传递它们或者我可以做类似的事情:
mvn test -DargLine="-Dkarate.env='production' -Dkarate.clientid='1234567890' ...
这样我就可以在 karate-config.js 中引用 karate.clientid,我可以将它保存到返回的配置对象中。
我确定我在这里遗漏了一些明显的东西...
是的! karate.properties['karate.clientid']
.
参考 documentation
我找到了方法,但我没有使用示例。我做了什么:
在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'
。
你可以这样传递参数
mvn test -D clientId=123 -D baseurl=test.com
并在空手道-config.js中将它们称为
karate.properties['clientId'] and karate.properties['baseurl']
我有额外的设置需要在 运行 时通过 Maven 传递给 Karate,这些设置将在 karate-config.js 中可用。目前我可以使用 karate.env 属性 传递一个字符串 - 是否有必要将我的参数编码为 JSON 对象并通过这个 属性 传递它们或者我可以做类似的事情:
mvn test -DargLine="-Dkarate.env='production' -Dkarate.clientid='1234567890' ...
这样我就可以在 karate-config.js 中引用 karate.clientid,我可以将它保存到返回的配置对象中。
我确定我在这里遗漏了一些明显的东西...
是的! karate.properties['karate.clientid']
.
我找到了方法,但我没有使用示例。我做了什么:
在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'
。
你可以这样传递参数
mvn test -D clientId=123 -D baseurl=test.com
并在空手道-config.js中将它们称为
karate.properties['clientId'] and karate.properties['baseurl']