我正在尝试通过位于同一目录中的karate-config-<env>.js
文件配置不同的测试目标。
当我尝试针对不同的目标系统执行测试时:
mvn test -Dkarate.env=int02 (tried: -DargLine="-Dkarate.env=int02")
karate-config-int02.js
文件未执行,并且测试执行卡在了某个地方。我已经读过documentation,但是到目前为止,我没有找到任何有效的示例。
我正在Maven
0.9.4
示例项目中使用Java 1.8
在macOS上使用空手道3.6.0
进行概念验证。扩展pom文件,如下所示,也无法正常工作:
<properties>
<karate.env>int02</karate.env>
</properties>
尽管通过
-Dkarate.env=int02
,我可以确保将karate-config-int02.js
用于配置所需的实例特定属性。我在两个karate-config文件中都有一行,例如:
karate.log('karate-config|karate-config-int02 is called')
但我总是看到:
karate-config is called
最佳答案
最简单的方法以及90%的项目如何做到的是仅使用一个karate-config.js
,然后按照文档使用一些if else
JS逻辑。也许你可以坚持下去。
var env = karate.env || 'dev';
var config = { someUrlBase: 'https://localhost:8080/' };
if (env == 'stage') {
// over-ride only those that need to be
config.someUrlBase = 'https://stage-host/v1/auth';
} else if (env == 'e2e') {
config.someUrlBase = 'https://e2e-host/v1/auth';
}
return config;
否则,请遵循此过程,以便我们找出可能出问题的地方:https://github.com/intuit/karate/wiki/How-to-Submit-an-Issue
关于testing - 如何使用Karate配置和使用/在配置环境之间切换,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58450141/