【发布时间】:2018-04-06 10:53:59
【问题描述】:
我有一个包含 expressjs 和 ava 的项目,我正在使用 webpack 来打包应用程序
webpack 也是从 .env 文件加载环境变量 在 NODE_ENV 上。
如何在运行 ava 时加载 .env 文件变量,或者在运行 ava 测试之前捆绑应用程序?
谢谢!
【问题讨论】:
标签: express webpack environment-variables ava
我有一个包含 expressjs 和 ava 的项目,我正在使用 webpack 来打包应用程序
webpack 也是从 .env 文件加载环境变量 在 NODE_ENV 上。
如何在运行 ava 时加载 .env 文件变量,或者在运行 ava 测试之前捆绑应用程序?
谢谢!
【问题讨论】:
标签: express webpack environment-variables 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();
});
【讨论】:
This commit 于 2019 年 6 月 1 日合并,比原帖晚了一段时间。
不过,现在总而言之,您可以在项目的 package.json 文件中为 Ava 测试运行程序定义环境变量:
{
...
"ava": {
"environmentVariables": {
"FOO": "bar",
...
}
},
...
}
【讨论】:
还有前面两个答案的组合,你可以通过在你项目的package.json文件中指定以下内容来指定ava对所有测试使用dotenv:
{
...
"ava": {
"require": [
"dotenv/config"
]
},
...
}
【讨论】: