М'яка перевірка все одно потребує твердої зупинки.
Збирайте незалежні помилки, не дозволяючи порушеній передумові дозволяти наступну дію.

Перекладне видання. Технічні ідентифікатори залишаються в оригінальній формі.

На сторінці огляду неправильні заголовок і статус чернетки. Звичайна перевірка зупиняється на першій розбіжності, м'яка збирає обидві. Це корисна діагностика, але тест залишається невдалим. Продовження виконання не дозволяє продовжувати продуктовий процес.
Посібник використовує документацію перевірок Playwright та вигадану локальну сторінку. Немає справжнього схвалення, надсилання чи акаунта. Незалежні спостереження передують бар'єру перед наступним кроком.
Збирайте змістовні спостереження
М'які помилки не припиняють виконання, але роблять тест невдалим. Вони працюють із раннером Playwright, не автоматично з іншою бібліотекою.
Наступне спостереження має зберігати сенс після помилки. Неправильний заголовок не заважає незалежній перевірці статусу. Відсутній початковий запис інший: читання його полів може дати лише зайві вторинні помилки.
await expect.soft(page.getByRole('heading')).toHaveText('Review demo draft');
await expect.soft(page.getByRole('status')).toHaveText('Ready for review');
expect(test.info().errors).toHaveLength(0);
await page.getByRole('button', { name: 'Continue demo' }).click();Потрібні контрольована сторінка та імпортовані test і expect. Тверда перевірка помилок навмисна. Після м'якого збою Continue не натискається. Локальна кнопка не задає правила справжнього схвалення.
Поставте бар'єр перед залежною дією
Зупиніться до дії, значення якої залежить від стану. Наприкінці запізно: неправильний запис уже міг змінитися. Обирайте за залежностями, не за довжиною списку помилок.
Помилки доступні в test.info().errors. Не очищуйте масив і не змінюйте статус заради видимого успіху. Пізніший знімок не стирає невдачі.
Додаткові читання мають бути змістовними й дозволеними. Навіть читання може розкрити приватні дані у трасах. Використовуйте дозволені тестові записи й оглядайте файли перед поширенням.
Перевірте негативний випадок
Локальний приклад має дві розбіжності. Раннер зберігає обидві, потім бар'єр зупиняє виконання. Перевірка після тесту підтверджує незмінність кнопки. Навмисний невдалий запуск залишається невдалим, не видається за виробничий успіх.
Інший випадок із правильними даними проходить бар'єр і змінює локальний маркер. Це доводить контроль потоку, не захист сервера чи властивість усіх згенерованих тестів.
Для критичної передумови звичайна тверда перевірка може бути простішою. М'якість служить діагностиці, не вимагає відкладати всі помилки. Використовуйте обидві форми за змістом.
Залиште правило огляду
Запишіть незалежні перевірки, залежну дію й місце зупинки. Так видно сценарій, який збирає помилки, але діє далі.
AnyTest описує дослідження й наскрізні тести для людського огляду. Запитайте, чи збережено помилку й захищено залежні дії. Спеціальна реалізація м'яких перевірок AnyTest не заявляється. Діагностика не повинна послаблювати межу.
Наступне спостереження може бути лише додатковим контекстом. Неправильний заголовок не знецінює незалежну перевірку видимого статусу, але відсутній запис уже руйнує передумову подальшої дії. Саме тому бар’єр стоїть перед кнопкою, а не як формальність наприкінці. У результаті лишаються дві м’які помилки та помилка твердої зупинки; успішний знімок не змінює цього висновку.
Загальні запитання
Чи лишає м'яка помилка тест зеленим?
Ні. Виконання триває, але тест позначається невдалим.
Де має бути твердий бар'єр?
Перед залежною дією, не лише наприкінці сценарію.