Codeception сохраняет исходный код страницы последнего запроса для всех неудачных тестов в каталоге tests/_output
, вам нечего делать.
Неудачное утверждение выдает исключение, поэтому ваш код после $I->seeResponseCodeIsSuccessful
не выполняется.
Если вы хотите реализовать некоторую настраиваемую обработку ошибок в конкретном тесте, вы можете заключить утверждения в блок try-catch и grabPageSource внутри catch.
public function checkCall(FunctionalTester $I)
{
$I->amOnRoute('mx/ed',['model' => 'State']);
try{
$I->seeResponseCodeIs(200);
$I->seeResponseCodeIsSuccessful();
} catch (Exception $e) {
$html = $I->grabPageSource();
//do your error handling here
throw $e; //rethrow exception to make test fail
}
}
Если вы хотите реализовать пользовательскую обработку ошибок для всех тестов, добавьте _failed method в Helper\Functional
класс в каталоге tests/_support/Helper
.
public function _failed(\Codeception\TestInterface $test, $fail)
{
$testName = $test->getMetadata()->getName();
$pageSource = $this->getModule('Yii2')->getPageSource();
//do your error handling here
}