gpt4 book ai didi

karate - 从 YAML 读取 Karate 配置

转载 作者:行者123 更新时间:2023-12-04 01:57:41 24 4
gpt4 key购买 nike

我想在 .yml/.yaml 文件中定义特定于环境的属性。因此我创建了以下 test.yaml:

baseUrl:  'http://localhost:1234'

接下来,我写了这个karate-config.js:

function() {
var env = karate.env;
if (!env) {
env = 'test'; // default is test
}
// config = read(env + '.yaml')
var config = read('/home/user/git/karate-poc/src/test/java/test.yaml');
// var config = read('test.yaml');
// var config = read('classpath:test.yaml');
return config;
}

如这里所见https://github.com/intuit/karate#reading-files Karate 应该知道 read() 函数,但是我不确定这是否仅适用于 .feature 文件或 karate-config.js 也是。

不幸的是,上面的 read() 都不起作用,因为我收到了这个错误:

Caused by: com.intuit.karate.exception.KarateException: javascript function call failed: could not find or read file: /home/user/git/karate-poc/src/test/java/test.yaml, prefix: NONE
at com.intuit.karate.Script.evalFunctionCall(Script.java:1602)

我确定该文件存在并且可读。

我做错了什么或者我的方法不受支持吗?如果不支持,推荐的方法是什么来从 YAML 文件(一次)读取基于环境的配置以便在(多个).feature 文件中使用它?

非常感谢

编辑:项目的树结构:

.
├── build.gradle
├── gradle
│   └── wrapper
│   ├── gradle-wrapper.jar
│   └── gradle-wrapper.properties
├── gradle.properties
├── gradlew
├── gradlew.bat
└── src
   └── test
   └── java
   ├── karate
   │   └── rest
   │   ├── rest.feature
   │   └── RestRunner.java
   ├── karate-config.js
   └── test.yaml

运行./gradlew test

最佳答案

在JS中,使用karate对象,这里有解释:https://github.com/intuit/karate#the-karate-object

所以这应该可行:

var config = karate.read('classpath:test.yaml');

关于karate - 从 YAML 读取 Karate 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49445592/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com