赛普拉斯E2E在基本身份验证上失败

时间:2018-09-24 11:13:18

标签: javascript authentication testing e2e-testing cypress

我正在尝试使用cypress通过一组完整的e2e测试来覆盖我们的dev-server。

我们需要将开发环境锁定在基本的http身份验证下,因此没有适当的凭据(客户端和api),没有人无法访问它。

当我尝试运行赛普拉斯测试时,它们因此失败。服务器(nginx)仅以401 http代码响应。

我尝试在“ user:password@domain.com”之类的网址中传递凭据,并且部分起作用:cypress可以访问domain.com上的前端,但仍然无法将任何请求发送到我们的后端(api .domain.com)(使用fetch)-可能是由于子域不同或其他原因。

我正在寻找一种强制其在域上的所有请求上使用这些凭据的方法,或者其他可能有助于我运行测试的变通方法。

谢谢!

1 个答案:

答案 0 :(得分:1)

这可能不是身份验证问题。 fetch不适用于赛普拉斯。参见https://github.com/cypress-io/cypress/issues/687

一种解决方法是将其放入您的support / index.js文件:

Cypress.on("window:before:load", win => {
  win.fetch = null;
});