gpt4 book ai didi

javascript - 在 Mocha 单元测试 Node.js 期间找不到环境变量

转载 作者:搜寻专家 更新时间:2023-10-31 23:45:50 25 4
gpt4 key购买 nike

我正在尝试运行 mocha 单元测试,但我正在测试的模块使用的模块之一需要环境变量,例如 process.env.CLIENT_ID 通过 dotenv。当我运行我的 Mocha 测试时,找不到这些环境变量。如何在我的 mocha 单元测试中包含 .env 文件中的环境变量?

测试.js:

    var messenger = require(__dirname + "/../routes/messenger.js");
var assert = require("assert")


describe("Return Hello", function(){
it('Should return hello',function(done){
messenger.testFunction(function(value){
assert(value === "Hello", 'Should return Hello')
done()
})
})
})

包含通过单元测试的问题的文件部分:

    var express = require("express")
var router = express.Router();

require('dotenv').config()

var plaid = require('plaid');
var mysql = require('mysql');

var fs = require("fs");


const plaidClient = new plaid.Client(
process.env.PLAID_CLIENT_ID, // these are all not found
process.env.PLAID_SECRET,
process.env.PLAID_PUBLIC_KEY,
plaid.environments.sandbox);

最佳答案

对我来说,在测试之前设置环境的最优雅方式是inside package.json

这里有一个例子来适应你自己的 npm test 命令:

"scripts": {
"test": "mocha -r dotenv/config"
}

主要思想是添加-r dotenv/config

该方法与 dotenv-flow 一样有效,不要忘记在命令开头添加 NODE_ENV=test

它也适用于 nodemon

关于javascript - 在 Mocha 单元测试 Node.js 期间找不到环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43815391/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com