Как удалить все cy.route из beforeEach в Cypress - PullRequest
1 голос
/ 23 апреля 2020

Я создаю много тестов для применения в моей фирме. Перед каждым тестом мне нужно создать состояние для работы с ним, и оно всегда одинаковое, поэтому я создал несколько маршрутов в своем собственном методе, а затем в support / index. js Файл, который я создал до каждого, который выглядит следующим образом

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

И в 99% процентов тестов он работает нормально, но есть один тест, который должен работать с реальными данными. Что мне делать? Есть ли способ игнорировать глобальные beforeEach? Я думаю, я могу переместить эту часть кода в каждый тест перед каждым, но это повторение кода? Или, может быть, я должен переопределить этот cy.route с пустыми ответами?

1 Ответ

0 голосов
/ 23 апреля 2020

Вы можете добавить условие к вашему 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();
    }
});
...