Я использую Codeception для запуска некоторых приемочных тестов на базе кода. У меня довольно простая конфигурация для моих тестов:
class_name: WebGuy
modules:
enabled: [PhpBrowser, WebHelper, Db]
Когда я запускаю их локально в MAMP на OSX, все тесты работают правильно.
Теперь я создал промежуточный сервер в Rackspace, на котором работает CentOS. Запустив тот же набор тестов, я столкнулся с кучей ошибок, которые в основном связаны с запуском $I->click('something')
, В тех случаях, когда это не удается, элемент, по которому нужно щелкнуть, является несколько общим <a>
тег, и не имеет классов или ID. Таким образом, я имел в виду его текст:
<a href='http://google.com'>google</a>
$I->click('google');
Кажется, что это работает хорошо локально, однако сейчас не удается на стадии.
Мне интересно, какие факторы могут способствовать этой разнице? Постановка запускает ту же версию PHP, что и я. Тем не менее, я заметил, что немного разные версии CURL
бегут.
Обсуждаем это до пользовательской ошибки: в Codception, когда тест завершается неудачей при конкретном утверждении, важно помнить, что НИЧЕГО, связанное с этим шагом, может вызвать проблему, а не только явный аспект, который тестируется.
В моем случае, если тест не может подтвердить, что определенная строка присутствует в базе данных после запроса вставки, это могло произойти из-за наличия компонента загрузки файла и недостаточно открытых разрешений для этого каталога.
Других решений пока нет …