4

我有一个带有 expressjs 和 ava 的项目,我正在使用 webpack 来捆绑应用程序

webpack 还基于 NODE_ENV 从 .env 文件中加载环境变量。

如何在运行 ava 时加载 .env 文件变量,或者在运行 ava 测试之前捆绑应用程序?

谢谢!

4

3 回答 3

5

您可以使用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();
});
于 2017-10-26T07:21:37.263 回答
3

此提交于 2019 年 6 月 1 日合并,比原始帖子晚了一段时间。

不过,现在的长短是您可以在项目package.json文件中为 Ava 测试运行程序定义环境变量:

{
    ...
    "ava": {
        "environmentVariables": {
            "FOO": "bar",
            ...
        }
    },
    ...
}
于 2019-06-28T20:10:10.437 回答
2

还有前面两个答案的组合,您可以通过在项目package.json文件中指定以下内容来指定 ava 对所有测试使用 dotenv:

{
    ...
    "ava": {
        "require": [
             "dotenv/config"
        ]
    },
    ...
}
于 2021-08-24T06:17:05.187 回答