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