我需要拯救失败的测试的源代码进行修复。如何而在警予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();
}
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 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
}