繁体   English   中英

如何从赛普拉斯的 beforeEach 中删除所有 cy.route

[英]How to remove all cy.route from beforeEach in Cypress

我正在为我公司的应用程序创建大量测试。 在每次测试之前我需要创建一个 state 来处理它,它总是一样的,所以我在我自己的方法中创建了一些路由,然后在我创建的 support/index.js 文件中创建 beforeEach 看起来像这样

beforeEach(() => {
    cy.server();
    cy.mockSearches(SHORTEN_SEARCHES); // this only creates mocks
    cy.loginAdmin();
});

在 99% 的测试中,它运行良好,但有一个测试需要处理真实数据。 我应该怎么办? 有没有办法忽略全局 beforeEach? 我想我可以将这部分代码移动到每个测试之前的每个测试,但那是代码重复? 或者也许我应该用空响应覆盖这个 cy.route?

您可以在设置之前向beforeEach()添加条件以退出:

beforeEach(() => {
    if (shouldUseRealData) return;
    cy.server();
    cy.mockSearches(SHORTEN_SEARCHES); // this only creates mocks
    cy.loginAdmin();
});

如有关环境变量的文档中所述,您可以通过不同的方式设置环境变量。 一种方法是在调用 cypress run 时在命令行中设置它:

cypress run --env use_mock=true

然后你可以将它与Cypress.env('use_mock')一起使用。

beforeEach(() => {
    if (Cypress.env('use_mock')) {
        cy.server();
        cy.mockSearches(SHORTEN_SEARCHES); // this only creates mocks
        cy.loginAdmin();
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM