Supertest使用Express应用返回301。应用仅使用托管服务器

时间:2019-02-04 22:28:41

标签: javascript express testing supertest

嗨,我正在使用超级测试来测试我的Node js Express服务器应用程序。

这就是我要实现的目标。

let request = require('supertest');
let app = require('./server.js');

request(app).get("/api").then(data=>{//*do something here*//});

但是,我得到301 Moved Permanently

如果我实际上是在端口8008上启动服务器,则将测试更改为

let request = require('supertest');
let app = require('./server.js');
let agent = request.agent('localhost:8008');

agent.get("/api").then(data=>{//*do something here*//});

然后,我得到了正确的api响应,正如我所期望的。

是否有一种方法可以通过使用request(app)而不是localhost:8008使其工作并获得200个响应?

作为持续集成的一部分,我将运行测试,并且我无法完全控制测试环境,因此我将无法运行每个测试服务器来访问本地主机。

谢谢。

1 个答案:

答案 0 :(得分:1)

我发现我在Express上强制执行SSL连接问题。

我有条件地在测试环境中关闭了SSL强制实施,并且按预期运行!

希望这对以后遇到相同问题的人有所帮助:)