我正在尝试使用cypress通过一组完整的e2e
测试来覆盖我们的dev-server。
我们需要将开发环境锁定在基本的http身份验证下,因此没有适当的凭据(客户端和api),没有人无法访问它。
当我尝试运行赛普拉斯测试时,它们因此失败。服务器(nginx)仅以401 http代码响应。
我尝试在“ user:password@domain.com”之类的网址中传递凭据,并且部分起作用:cypress可以访问domain.com上的前端,但仍然无法将任何请求发送到我们的后端(api .domain.com)(使用fetch
)-可能是由于子域不同或其他原因。
我正在寻找一种强制其在域上的所有请求上使用这些凭据的方法,或者其他可能有助于我运行测试的变通方法。
谢谢!
答案 0 :(得分:1)
这可能不是身份验证问题。 fetch
不适用于赛普拉斯。参见https://github.com/cypress-io/cypress/issues/687
一种解决方法是将其放入您的support / index.js文件:
Cypress.on("window:before:load", win => {
win.fetch = null;
});