如何在命令行中仅覆盖测试的URL

  • 本文关键字:覆盖测试 URL 命令行 karate
  • 更新时间 :
  • 英文 :


在我的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

最新更新