实验室和 getConfig 集成

Lab & getConfig integration

我正在尝试将 Lab 与 getConfig 一起使用,但我总是遇到错误。

在实验室中,我需要服务器,但在搜索配置文件时,它会查找 node_modules/lab/bin/test_config。json 而不是在根文件夹中查找 test_config。

有什么方法可以使用 getConfig 将配置文件传递给实验室吗?

这是我正在做的事情的片段:

//In the testFile.js
var Lab = require("lab");
var server = require("../index");
(...)

//In index.js
(...)
var config = require('getconfig');
(...)
var server = new Hapi.Server();
server.connection({
  host: config.http.listen,
  port: config.http.port
});
(...)

这是抛出的错误:

/index.js:12
host: Cannot read property 'listen' of undefined

您可以使用 GETCONFIG_ROOT 环境变量。来自 documentation:

In certain circumstances, when your app isn't run directly (e.g. test runners) getconfig may not be able to lookup your config file properly. In this case, you can set a GETCONFIG_ROOT environment variable to the directory where your configs are held.

所以 运行 你的测试是这样的:

GETCONFIG_ROOT="/path/to/root" make test