#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
объекту и динамической генерации тестов для каждого канала.