[英]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.