.env不适用于AVA

时间:2016-08-21 14:04:11

标签: javascript testing filesystems ava

当我尝试使用带有使用dotenv-safe的项目的ava运行我的测试时,我收到以下错误

{ [Error: ENOENT: no such file or directory, open '.env'] errno: -2, code: 'ENOENT', syscall: 'open', path: '.env' }
fs.js:549
  return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
                 ^

Error: ENOENT: no such file or directory, open '.env.example'

看起来ava没有找到.env或.env.example文件

是否有针对此的解决方法或解决方案?

这是一个可以轻松重现问题的回购:https://github.com/sibelius/koa-env-ava

1 个答案:

答案 0 :(得分:2)

快速浏览一下,这是一个让事情有效的公关:https://github.com/sibelius/koa-env-ava/pull/1

发生的事情是dotenv-safe不知道在哪里找到.env.env.example文件,因此会查看src目录并抛出错误。我重新编写了src/config.js文件,以自动查看项目根目录:

const root = require('path').join.bind(this, __dirname, '..');

require('dotenv-safe').load({
  path: root('.env'),
  sample: root('.env.example')
});

export const API_URL = process.env.API_URL;
export const SERVER_PORT = process.env.SERVER_PORT;

这种方式dotenv-safe知道从哪里加载.env文件。