У Pest v4.5.0 з’явилася вбудована підтримка повторного запуску нестабільних тестів за допомогою нового модифікатора flaky() та CLI-флага --flaky. Оновлення також включає нову архітектурну перевірку для виявлення розбіжностей у регістрі шляхів до файлів, фільтр покриття --only-covered та низку інших покращень.
flaky() із можливістю налаштування кількості спроб--flaky для запуску лише позначених як нестабільні тестівtoBeCasedCorrectly--only-covered для звіту про покриття кодуТести, що час від часу падають через затримки, зовнішні залежності або інші недетерміновані умови, тепер можна позначити методом ->flaky(). Якщо такий тест провалюється, Pest автоматично перезапускає його вказану кількість разів, перш ніж зафіксувати помилку. За замовчуванням кількість спроб дорівнює 3.
it('sends an email notification', function () {
// ...
})->flaky();
it('resolves within the timeout', function () {
// ...
})->flaky(tries: 5);
Новий флаг --flaky дозволяє запускати лише ті тести, що позначені як нестабільні. Це спрощує їх ізольоване налагодження:
vendor/bin/pest --flaky
Хуки життєвого циклу, як-от beforeEach та afterEach, виконуються перед кожною спробою, що гарантує коректне скидання стану тесту.
Метод ->toBeCasedCorrectly() додано до набору архітектурних перевірок Pest. Він порівнює namespace кожного класу з фактичним шляхом до файлу та сигналізує про розбіжності в регістрі символів. Оскільки macOS та Windows зазвичай нечутливі до регістру, такі помилки часто непомітні під час розробки, проте вони спричиняють збої після деплою на Linux-сервери.
arch()
->expect('App')
->toBeCasedCorrectly();
Наприклад, ця перевірка виявить помилку, якщо клас за шляхом app/Providers/AppServiceProvider.php має namespace App\providers\AppServiceProvider.
PR: #1455, автор @SimonBroekaert
Флаг --coverage отримав доповнення --only-covered, яке приховує зі звіту всі файли з 0% покриття. Це зручно під час роботи над великими проєктами, коли потрібно зосередитися саме на тих файлах, які охоплюють ваші нові тести.
vendor/bin/pest --coverage --only-covered
Ця опція не впливає на розрахунки порогів --min або --exact — вони й надалі враховуватимуть усі файли проєкту.
PR: #1626, автор @SimonBroekaert
toUseTrait для розпізнавання трейтів, успадкованих від батьківських класів або через вкладені трейти (#1515).toExtend у пресеті Laravel (#1569).--parallel та --teamcity для ParaTest (#1615).--filter (#1624).this для замикань параметрів у функціях (#1628).beforeEach()->with() та describe()->with() (#1565).Laravel 13 вийде в березні 2026 року й вимагатиме мінімум PHP 8.3. Хочете дізнатися, як PHP‑атрибути для моделей, нові налаштування черг і метод Cache::touch() вплинуть на вашу розробку?
Ви коли-небудь задумувалися, як полегшити свою роботу в Laravel? У нашій статті ми розглядаємо, як інтеграція Claude Code в PhpStorm може підвищити вашу продуктивність, спростивши процес написання коду та навчання нових розробників. Читайте далі, щоб дізнатися більше про переваги та функціональність цього потужного поєднання
Встановлення Xdebug може бути складним завданням, але в цій статті ми розкриємо, як швидко та просто налаштувати його за допомогою Docker на прикладі Laravel. Дочитайте до кінця, щоб дізнатися, як за кілька хвилин зробити Xdebug вашим надійним помічником у розробці