Есть ли методы setUp TearDown для единичного запуска перед всеми тестами?

Мне нужно перед запуском того или иного *Cest.php запускать определенный код.

Как решение вижу setUp метод = _before в Codeception. Но он запускается перед КАЖДЫМ тестом внутри Cest файла.

Мне нужно 1 раз перед всеми тестами одного файла. Что можно предпринять? Посоветуйте плз.

Во всех тест ранерах методы называются по разному, но в JUnit и TestNg есть @beforeClass @AfterClass методы - они прогоняются один раз перед запуском тестов в классе

Мне как раз нужна такая аналогия только в Codeception

Гуглил =)

Нашел hook _beforeSuite. Но чот в Cest он просто так не хочет работать. Может у кого есть вариант с его использованием ?

Нашел вариант с его использованием, но как я понял он может использоваться только в модулях или хелперах. А такой вариант мне не подходит.

Нашел вариант с его использованием, но как я понял он может использоваться только в модулях или хелперах. А такой вариант мне не подходит.

А почему? Предположим, что у вас тесты будут запускаться не последовательно, а в случайном порядке. Запуск “перед всеми” тестами абсолютно эквивалентно тому чтобы быть запущеным в начале сьюты. Кроме того, если вы возьмете подобный функционал из PHPUnit - там конечно есть метод setUpBeforeClass, но он статичен, т.е. не принадлежит инстансу обьекта, и не имеет доступ к контексту $this. Т.е. он находится вне контекста теста

TL;DR - всё можно сделать через beforeSuite

Спасибо за ответ от создателя :+1:

У меня есть несколько Cest со скоупами тестов внутри. Я хочу задавать в некоторых Cest метод _beforeSuite(_beforeCest), который будет выполняться 1 раз перед запуском тестов этого самого Cest. В других Cest содержимое метода _beforeSuite может меняться, или он вовсе не нужен в некоторых из них.

Пока не сообразил как можно заюзать этот ХУК, так чтобы решить мою задачу. Если я правильно понял, то используя этот хук в хэлепере он вызовется всего один раз, за один php codecept run. Если нет, то просьба объяснить как?