首页 文章

从YAML阅读空手道配置

提问于
浏览
2

我想在 .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;
}

正如在这里看到的那样 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

1 回答

相关问题