【发布时间】:2018-12-18 14:21:22
【问题描述】:
我有一个.env 文件,其中包含MYVAR=1 变量。
server.js
//...
var app = express();
//...
if(app.get("env")==="development"){
require('dotenv').config();
}
console.log("server------",process.env. MYVAR) //outputs 1
if(process.env.MYVAR==1){
//do this
}
if(process.env.MYVAR==2){
//do this
}
module.exports = app;
test.server.js
app = require('../server'),
supertest = require('supertest');
require('dotenv').config();
describe('Server TESTS', function () {
let request = null
let server = null
before(function (done) {
process.env.MYVAR = 2;
server = app.listen()
request = supertest.agent(server)
done()
});
after(function (done) {
console.log("client------",process.env. MYVAR) //outputs 2
server.close(done)
});
})
问题:
在我运行mocha test 之后,我的MYVAR 不会反映server.js 文件,它仍然是1。即使我在server.js 中注释掉require('dotenv').config();
我该如何克服这个问题,也许我的超测代理结构不正确。请指教。
更新:
而不是server = app.listen(),server = require('../server').listen()
按预期工作。
【问题讨论】:
标签: node.js unit-testing express mocha.js supertest