首页 > 解决方案 > 空手道| env 特定的配置文件

问题描述

空手道框架| 我正在尝试为不同的 env 创建多个 karate-config.js 文件,例如“test”、“stage”,有人可以帮我举个例子,我如何从不同的 karate 配置文件中调用 env 特定的配置值。我参考了这个https://github.com/intuit/karate/blob/master/karate-demo/src/test/java/karate-config-contract.js 但没有说明调用不同的配置究竟需要做什么.

标签: configkarate

解决方案


空手道文档的这一部分解释了如何检查karate.env您的属性,karate-config.js以便根据您的环境设置配置和变量。

这里解释了另一种归档每个环境的不同配置的方法:environment-specific-config

所有这些方法都解决了这个问题,例如在您的测试用例中配置不同的 url。因此,无需调用或检查功能文件中的环境即可获取不同的配置值。它是由空手道完成的。只需参考您在 中分配的变量karate-config.js

您只需执行以下操作:

Background:
* url baseUrls.userSystem

karate-config.js可能看起来像:

function fn() {

    if (!env) {
        env = 'local';
    }

   var config = {
        baseUrls : {
             userSystem : "http://localhost"
        }

   }
   if (env === 'dev') {
        config.baseUrls.userSystem = "http://usersystem.default.svc"
   }

   return config   
}

上面的方法演示了如何在karate-config.js所有环境中只使用一种。一份文件供所有人使用。

如果要创建karate-config-<env>.js每个环境,请遵循特定于环境的配置文档。

您将在https://github.com/intuit/karate/tree/master/karate-demo/src/test/java找到一个默认值,该默认值karate-config.js将针对每个环境进行评估。当且仅当属性为时,才会karate-config-contract.js在评估文件后评估。karate-config.jskarate.envcontract

请阅读空手道文档。彼得做得很好,几乎记录了空手道提供的每一个小功能。


推荐阅读