2017-05-06 22 views
0

mochaユニットテストを実行しようとしていますが、テストしているモジュールで使用されているモジュールの1つに、process.env.CLIENT_ID〜dotenvなどの環境変数が必要です。私がMochaテストを実行すると、これらの環境変数が見つかりません。私のmochaユニットテストで.envファイルの環境変数を含めるにはどうしたらいいですか?Mochaユニットテスト中に環境変数が見つかりませんNode.js

test.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); 

答えて

0

私は解決策を見つけました。 .config()メソッドのpath:オプションを追加して、dotenv configを.envファイルの場所に明示的にリンクする必要がありました。

例:

 var envPath = __dirname + "/../.env" 
    require('dotenv').config({path:envPath}) 

//^this was incorrect 

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

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

    var fs = require("fs"); 


    const plaidClient = new plaid.Client(
     process.env.PLAID_CLIENT_ID, 
     process.env.PLAID_SECRET, 
     process.env.PLAID_PUBLIC_KEY, 
     plaid.environments.sandbox); 
関連する問題