Как получить исходный код страницы в codeception yii 2 - PullRequest
0 голосов
/ 08 февраля 2019

Мне нужно сохранить исходный код неудачного теста, чтобы это исправить.Как получить исходный HTML при использовании теста кодового восприятия в yii 2?

Я не могу заставить работать $I->grabPageSource() и $I->_getResponseContent(), хотя есть именно эти функции.

public function checkCall(FunctionalTester $I)
{
    $I->amOnRoute('mx/ed',['model' => 'State']);
    $I->seeResponseCodeIs(200);
    $I->seeResponseCodeIsSuccessful();
    $html = $I->grabPageSource();
}

1 Ответ

0 голосов
/ 08 февраля 2019

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
}
...