我有一个带有 expressjs 和 ava 的项目,我正在使用 webpack 来捆绑应用程序
webpack 还基于 NODE_ENV 从 .env 文件中加载环境变量。
如何在运行 ava 时加载 .env 文件变量,或者在运行 ava 测试之前捆绑应用程序?
谢谢!
我有一个带有 expressjs 和 ava 的项目,我正在使用 webpack 来捆绑应用程序
webpack 还基于 NODE_ENV 从 .env 文件中加载环境变量。
如何在运行 ava 时加载 .env 文件变量,或者在运行 ava 测试之前捆绑应用程序?
谢谢!
您可以使用dotenv将.env
文件加载到您的测试环境中。一个简单的例子:
import test from 'ava';
require('dotenv').config()
test('foo', t => {
console.log(process.env.DB_HOST);
console.log(process.env.DB_USER);
console.log(process.env.DB_PASS);
t.pass();
});
此提交于 2019 年 6 月 1 日合并,比原始帖子晚了一段时间。
不过,现在的长短是您可以在项目package.json
文件中为 Ava 测试运行程序定义环境变量:
{
...
"ava": {
"environmentVariables": {
"FOO": "bar",
...
}
},
...
}
还有前面两个答案的组合,您可以通过在项目package.json
文件中指定以下内容来指定 ava 对所有测试使用 dotenv:
{
...
"ava": {
"require": [
"dotenv/config"
]
},
...
}