【问题标题】:karate| env specific config file空手道| env 特定的配置文件
【发布时间】:2020-01-10 03:37:28
【问题描述】:

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

【问题讨论】:

标签: config karate


【解决方案1】:

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

这里解释了另一种归档每个环境的不同配置的方法: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,请遵循environment-specific-config 文档。

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

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

【讨论】:

  • 如果我手动运行单个场景或功能文件(不使用 cmd ) karate-config-.js 文件不执行仅主要配置属性是可以访问的,为什么?除了 karate.env @Peter 之外,我还需要设置任何其他的东西吗?你能帮我吗
  • 如何执行/运行场景?
  • 如果我通过 IntelliJ 快捷方式选项运行(通过右键单击测试或功能文件并单击运行)在这种情况下只有主配置文件正在运行,它不会重定向到特定于 env 的文件-@彼得
  • @CharuGupta:如何通过 IntelliJ 指定环境?
猜你喜欢
  • 2016-02-17
  • 2023-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多