В кипарисах, где функция Потому ()? - PullRequest
0 голосов
/ 10 мая 2019

При написании кипарисовых тестов с основными утверждениями, как мне объяснить причину, лежащую в основе утверждения в результатах теста? Мой тестовый вывод ясно описывает, что не удалось, но в нем нет контекстной информации и нет простого способа перейти прямо к номеру строки ошибочного утверждения в тестовом скрипте. Чего мне не хватает?

Ответы [ 3 ]

1 голос
/ 13 мая 2019

Кажется, ничего не предусмотрено, но это действительно просто сделать. Вот пользовательская команда because(), которая просто выводит свой аргумент в журнал команд , а затем возвращает предыдущую тему, чтобы вы могли связать ее по цепочке.

// sby add context to ouput...
Cypress.Commands.add("because", { prevSubject: 'true'}, (subject, options) => { 
    Cypress.log({
        message: options
    });
    return subject;
})

Чтобы использовать это ...

cy.get("input#date").because("today is today").should("have.value", localToday);

Это дает вам ...

enter image description here

Я все еще новичок в этом бизнесе, но мне нравится это решение, потому что оно свободно, улучшает четкость выводимых данных, и я могу гораздо быстрее найти строку кода, когда что-то не так.

0 голосов
/ 10 мая 2019

Вы можете добавить контекст к утверждениям в стиле expect(...).to... следующим образом:

expect(true).to.eq(true, 'should equal itself')

screenshot of test in Cypress

Насколько мне известно, нет способа добавить контекст к утверждениям в стиле .should().

0 голосов
/ 10 мая 2019

Использование снимков экрана ответит на ваши вопросы.

Cypress по умолчанию сделает снимки экрана при неудачном тестировании (это поведение можно отключить, введя в конфигурацию "screenshotOnRunFailure":false).Эти скриншоты находятся здесь: кипарис / скриншоты

На скриншотах запечатлены тест describe(), it() и конкретное действие, которое не удалось.Если утверждение не выполняется, в нем даже упоминается, какое значение было ожидаемым и какое значение было получено.

Эти три вывода на скриншоте предоставят вам точное место в тесте, где произошел сбой.

...