Фільтрація тестів · Pest
Коли ви запускаєте ./vendor/bin/pest, Pest за замовчуванням виконує весь набір тестів. Як і можна очікувати, окремий тест запускається передаванням його назви першим аргументом.
./vendor/bin/pest tests/Unit/TestExample.php
У цьому розділі розглянуто ще більше способів відфільтрувати тести, які виконує Pest. Повний опис CLI API дивіться в CLI API Reference.
--bail
Опція --bail вказує Pest припинити виконання набору тестів на першій же невдачі або помилці.
./vendor/bin/pest --bail
--dirty
Опція --dirty вказує Pest запускати лише ті тести, у яких, за даними Git, є незакомічені зміни. Це часто корисно, коли ви розробляєте набір тестів для нової функціональності й не хочете щоразу проганяти всі тести.
./vendor/bin/pest --dirty
Зверніть увагу: через обмеження Pest тести, написані в синтаксисі PHPUnit, завжди вважаються «брудними».
--filter
За допомогою опції --filter можна запускати тести, що відповідають заданому регулярному виразу. Опція --filter дозволяє фільтрувати тести за будь-якою інформацією, яка зазвичай зʼявляється в описі тесту у виводі: імʼя файлу, опис тесту, параметри набору даних тощо.
./vendor/bin/pest --filter "test description"
--group
Опція --group дозволяє вибірково запускати тести, що належать до певної групи. Про призначення тестів або тек до груп читайте в документації Grouping Tests.
./vendor/bin/pest --group=integration,browser
--exclude-group
Опцією --exclude-group можна виключити з виконання конкретні групи тестів.
./vendor/bin/pest --exclude-group=integration,browser
--retry
Якщо тест раніше падав, зазвичай хочеться впорядкувати набір тестів так, щоб такі тести виконувалися першими. Для цього є опція --retry.
Прапорець --retry перевпорядковує набори тестів, ставлячи в приоритет ті тести, які падали раніше. Якщо падінь не було, набір виконується як звичайно. А якщо були, ці тести запускаються першими.
Зверніть увагу: якщо у вашому файлі
phpunit.xmlє два набори тестів (зазвичай Unit і Feature), ця опція впорядкує кожен набір окремо, запускаючи в ньому спершу тести, що падали. Тобто іноді ви побачите, що весь набір Unit виконується раніше за набір Feature, у якому пріоритет мають тести, що падали раніше.
./vendor/bin/pest --retry
only()
Якщо потрібно запустити конкретний тест зі свого набору, скористайтеся методом only().
test('sum', function () {
$result = sum(1, 2);
expect($result)->toBe(3);
})->only();
Із ростом кодової бази запускати тести з фільтрами вручну стає втомливо. Тут у гру вступає пропускання тестів. Це корисна можливість: розробники можуть тимчасово виключити окремі тести з набору, не видаляючи їх повністю: Skipping Tests →
Перекладаємо з офіційної документації, розділ за розділом, і не ховаємо недоперекладене. Помітили неточність у терміні чи реченні: напишіть, виправимо.