在我的karate-config.js中,我为我在测试中使用的端点设置了一个默认url:
var config = {
env: env,
pricingApiUrl: 'http://localhost:8080'
}
在需要该端点的测试中,我将"url"分配给该端点* url pricingApiUrl
我知道在karate-config.js文件中设置不同的环境,但在某些情况下,直到运行时我才知道"pricingApiUrl"的确切url。
所以我想知道当我在命令行运行测试时,是否可以通过命令行标志设置"pricingApiUrl"。
我发现了一种方法:
1.(在karate-config.js
中添加以下内容,以便您的测试默认为使用http://localhost:8080'(或任何默认url(或使用karate.properties中的值(如果存在(:
var config = {
env: env,
pricingApiUrl: karate.properties['platform.pricing.api.url'] || 'http://localhost:8080'
}
2.(然后,在命令行运行测试,为您定义的karate.properties传递一个值(在我的情况下,为karate.properties['platform.pricing.api.url'](:
mvn clean test -Dplatform.pricing.api.url=https://your_heroku_app.herokuapp.com
"platform.pricing.api.url"只是一个任意的描述性名称。你可以用一个不同的。
urlhttps://your_heroku_app.herokuapp.com只是一个例子——放上测试针对运行的api的基本url
没有直接的方法。也许你可以贡献代码:(
您可以检查系统属性并有条件地执行操作。例如:
var config = {
env: env,
pricingApiUrl: karate.properties['from.cli'] || 'http://localhost:8080'
}
其他想法:https://stackoverflow.com/a/52821230/143475