gpt4 book ai didi

node.js - 在 npm 测试阶段使用不同的数据库

转载 作者:太空宇宙 更新时间:2023-11-04 02:17:05 25 4
gpt4 key购买 nike

环境:heroku、node.js -express、使用 mocha 进行测试。

如何配置heroku以使用 NODE_ENV="test"启动 npm test 并使用 NODE_ENV="product"调用服务器(“node server.js”)。

这意味着我需要两次服务器调用 - 一次用于测试(我连接到我的测试数据库),一次用于生产(我连接到我的生产数据库)

我想在“npm test”阶段使用不同的数据库,因为我的测试也会创建假数据。

这是我的测试的样子:

var supertest = require("supertest");
var should = require('chai').should();
var config = require('../server/config');

var server = supertest.agent(config.baseUrl);

describe("User controller", function () {
describe("HTTP Verbs", function () {
it("GET", function (done) {
console.log(config.dbUrl);
console.log(config.baseUrl);
server.post("/api/user") {
.send(utils.createMockedUserPlainObject())
.end(function(err, res) {

server.get("/api/user/list")
.expect("Content-type", /json/)
.expect(200) // THis is HTTP response
.end(function (err, res) {
// HTTP status should be 200
res.status.should.equal(200);
res.body.should.have.length(1);

done();
});
})
});
});
});

最佳答案

嗯,

看来神奇之处在于 super 测试。

替换:

var server = supertest.agent(config.baseUrl);

与:

var app = require('../server');

var server = supertest.agent(app);

关于node.js - 在 npm 测试阶段使用不同的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35230489/

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