在karate-config.js中读取gradle命令行参数时出现问题

在karate-config.js中读取gradle命令行参数时出现问题,karate,Karate,我正在尝试从gradle传递一些cmd行参数,以便在karate-config.js中使用。 Cmd:/gradlew test-Denv=qa-Dmodule=payments 我查看并遵循了类似的步骤,并将其放在build.gradle中: test { ... systemProperty "karate.env", System.properties.getProperty("env") systemProperty "karate.module", Syste

我正在尝试从gradle传递一些cmd行参数,以便在karate-config.js中使用。 Cmd:
/gradlew test-Denv=qa-Dmodule=payments

我查看并遵循了类似的步骤,并将其放在build.gradle中:

test {
     ...
    systemProperty "karate.env", System.properties.getProperty("env")
    systemProperty "karate.module", System.properties.getProperty("module")
}
现在在karate-config.js中,我有如下代码:

var environmentvar = karate.env;
var modulevar = karate.module;
环境变量(
karate.env
)获取正确的值,但模块变量(
karate.module
)始终显示为未定义。有关于如何解决这个问题的建议吗

空手道0.9.4
JDK 1.8.0ç

您是否缺少空手道。例如:

System.properties.getProperty("karate.env")

只是没有重新认识到访问
karate.env
有效的重要信息

环境变量
karate.env
被特殊处理。使用
karate
对象以相同的方式访问其他系统属性不起作用

你应该读书

解决方案:使用
karate.properties['prop.name']
访问模块系统变量

就你而言:

var environmentvar = karate.env;
var modulevar = karate.properties['module'];

这不是原因
-Denv
进入并在
test
任务中映射到
karate.env
@Peter-ah好的。我不是gradle专家,所以你所有的:pye、System.properties.getProperty(“karate.env”)都不起作用。只有使用System.properties.getProperty(“env”)才有效。和System.properties.getProperty(“karate.module”)或System.properties.getProperty(“module”)不起作用。所以我想知道是否还有其他方法可以通过。@Peter可能有其他建议,但我的建议是遵循这个过程:或者改用maven