通过Maven通过命令行将其他参数传递给karate-config.js

通过Maven通过命令行将其他参数传递给karate-config.js,karate,Karate,我有额外的设置,我需要通过Maven运行时传递给空手道,这些设置将在Karate-config.js中提供。目前,我可以使用karate.env属性传入字符串-是否需要将我的参数编码为JSON对象并通过这个属性传入,或者我可以执行以下操作: mvn test -DargLine="-Dkarate.env='production' -Dkarate.clientid='1234567890' ... 这样我就可以在karate-config.js中引用karate.clientid,并将其保存

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

mvn test -DargLine="-Dkarate.env='production' -Dkarate.clientid='1234567890' ...
这样我就可以在karate-config.js中引用karate.clientid,并将其保存到返回的config对象中

我肯定我错过了一些明显的东西…

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

下面是一个例子

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


这里有一个例子,我已经找到了,但我没有用过。我所做的:

  • 在格拉德尔:

    任务api(类型:测试){
    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'
,但我没有使用示例。我所做的:

  • 在格拉德尔:

    任务api(类型:测试){
    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'

我发现我可以在没有-DargLine@Dunk请你详细解释一下你到底为你的案子做了什么。我们无法从命令行更改karate-config.js变量。示例:clientId,baseUrl。。ThanksPeter的答案看起来不错,有没有其他方法,比如从Jenkins那里输入参数,然后在空手道配置中检索?我发现我可以做
mvn test-D karate.clientId=123-D karate.baseurl=test.com
,而无需-DargLine@Dunk请你详细解释一下你到底为你的案子做了什么。我们无法从命令行更改karate-config.js变量。示例:clientId,baseUrl。。ThanksPeter的答案看起来不错,有没有其他方法,比如从Jenkins那里输入参数,然后在空手道配置中检索?