Cypress не позволяет настраивать тесты

#cypress #e2e-testing

#cypress #e2e-тестирование

Вопрос:

Я бы хотел, чтобы Cypress автоматически генерировал блок it для каждого элемента в приведенном ниже хэше. Когда я в настоящее время запускаю cypress, он отлично справляется со вторым тестом, но игнорирует тот, в котором есть цикл while. Как я могу это решить? Я бы предпочел не выписывать явный блок it для каждого элемента на карте.

    const testDataMappings = { 
        1: {e2eTestName: 'test-one'},
        2: {e2eTestName: 'test-two'},
        3: {e2eTestName: 'test-three'},
    }
    
// Does not work
    describe('My Tests', function () {
        let i = 1;
        while (i < testDataMappings.length   1) {
            let entry = testDataMappings[i];
            it("Should Do The Thing Correctly For"   entry.e2eTestName, () => {
                const standardCaseUrl = Cypress.config().baseUrl   "?profile_id="   String(i);
                cy.visit(standardCaseUrl);
                cy.wait(5000);
                cy.get('.some-div-class-name').compareSnapshot(entry.e2eTestName, 0.0);
            });
            i  =1;
        }

// works
        describe('Another Describe block', function () {
            it('Should do the thing', () => {
                const standardCaseUrl = Cypress.config().baseUrl   "?profile_id=1";
                cy.visit(standardCaseUrl);
                cy.wait(5000); 
                cy.get('.some-div-class-name').compareSnapshot('some-snapshot-name', 0.0);
            });
        });
    });
  

Похоже, что журналы консоли не отображаются, поэтому я не очень понимаю, что происходит.

Ответ №1:

В приложении Cypress Real World, платежном приложении, есть пример, демонстрирующий реальное использование методов, шаблонов и рабочих процессов тестирования Cypress. Пример находится в спецификации каналов транзакций и используется lodash each для итерации по feedViews объекту и динамической генерации тестов для каждого канала.