我正在尝试通过位于同一目录中的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/

10-09 07:10