如何获得获得codeception警予2页源

问题描述 投票:0回答:1

我需要拯救失败的测试的源代码进行修复。如何而在警予2使用codeception考试得到HTML源?

我不能让$I->grabPageSource()$I->_getResponseContent()工作虽然有这些确切的功能。

public function checkCall(FunctionalTester $I)
{
    $I->amOnRoute('mx/ed',['model' => 'State']);
    $I->seeResponseCodeIs(200);
    $I->seeResponseCodeIsSuccessful();
    $html = $I->grabPageSource();
}
unit-testing yii2 yii2-advanced-app functional-testing codeception
1个回答
1
投票

Codeception节省了在tests/_output目录中的所有测试失败本身最后一次请求的页面的源代码,没有什么给你做。

所以不执行$I->seeResponseCodeIsSuccessful后,你的代码中的失败断言抛出异常。

如果你想实现一些自定义的错误在特定的试验处理,你可以用在try-catch块和grabPageSource内赶上断言。

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 methodHelper\Functionaltests/_support/Helper目录类。

public function _failed(\Codeception\TestInterface $test, $fail)
{
    $testName = $test->getMetadata()->getName();
    $pageSource = $this->getModule('Yii2')->getPageSource();
    //do your error handling here
}
© www.soinside.com 2019 - 2024. All rights reserved.