У меня есть более 1400 тестов для кодирования для приложения Laravel 5.1, которое я разрабатываю на данный момент. Я был использован Codeception 2.0.15. Но сегодня я перешел к Codeception 2.1.2. Я обновил api.suite.yml
и другие файлы конфигурации набора, но многие тесты сейчас не работают.Сбой при отказе кода после обновления до версии 2.1
Первое, что я заметил, это то, что данные в memcached более не очищаются после тестов, поэтому тесты в данный момент влияют друг на друга. Но дело не только в этом. В одном из тестов я бегу что-то вроде этого:
public function tryToCompareClient(UnitTester $I)
{
$data = [
'client1' => [
'id' => 500,
'option1' => 'yes',
],
'client2' => [
'id' => 600,
'option2' => 'no',
],
];
Config::set('crm_settings.clients', $data);
$crm = App::make('crm');
$I->assertTrue($crm->isClient('client1', $data['client1']['id']));
// ...
Когда я запускаю только этот тест он работает нормально, но когда я запускаю множественным группу тестов, этот тест потерпит неудачу, потому что crm
это синглтон в моем приложении, и кажется, что, когда я устанавливаю новую конфигурацию в вышеприведенных тестах, этот класс не загружает данные из конфигурации каждый раз, но только тогда, когда он не установлен. Кажется, что что-то было изменено в модуле Codeception/Laravel5, поэтому экземпляр App
повторно используется между тестами.
На данный момент я предполагаю, что эти проблемы затронуты рефактором в this commit, но вопрос в том, есть ли простой способ заставить Codeception работать как раньше 2.1.2, или, может быть, единственный способ использовать ветвь старого 2.0 для такой функциональности ?