脚本宝典收集整理的这篇文章主要介绍了php – Selenium不会显示失败的数字行,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
当Assert失败时,失败的数字行没有显示,而是我看到一个PHPunit数字行.
当我执行“仅PHPunit”测试时,我可以看到失败断言的数字行.
PHPUnit只测试
$cd '/Applications/MAMP/htdocs/my-client/tests' && PHPunit -c 'PHPunit.XMl' '/Applications/MAMP/htdocs/my-client/tests/controllers/homeTest.PHP' PHPUnit 3.6.10 by Sebastian Bergmann. Configuration read From /Applications/MAMP/htdocs/my-client/tests/PHPunit.xML . Time: 0 seconds,Memory: 8.00Mb There was 1 failure: 1) HomeTest::test_get_sections Failed asserting that Array ( blah,blah,blah ) ) is identical to Array (blah,blah2 ) ). /Applications/MAMP/htdocs/my-client/tests/controllers/homeTest.PHP:56 /Applications/MAMP/bin/PHP/PHP5.3.6/bin/PHPunit:46 FAILURES! Tests: 2,Assertions: 3,Failures: 1.
PHPUnit Selenium测试
$cd '/Applications/MAMP/htdocs/my-client/tests' && PHPunit -c 'PHPunit.xml' '/Applications/MAMP/htdocs/my-client/tests/views/af_web_Test.PHP' PHPUnit 3.6.10 by Sebastian Bergmann. Configuration read from /Applications/MAMP/htdocs/my-client/tests/PHPunit.xml E Time: 2 seconds,Memory: 8.75Mb There was 1 error: 1) af_web_Test::test_crear_una_af_nueva_y_validar_el_valor_por_defecto_de_los_Campos current URL: http://localhost:8888/my-client/index.PHP/home/view Failed asserting that '' matches PCRE pattern "/0/". /Applications/MAMP/bin/PHP/PHP5.3.6/bin/PHPunit:46 FAILURES! Tests: 1,Assertions: 6,Errors: 1.
作为临时解决方法,我强制将行号放入正在抛出的异常中的错误消息中(因为行号当然可以在跟踪中找到).作为副作用,大多数异常都是重新抛出的,我只抛出PHPUnit_Framework_Error,但至少我得到了输出中的行号.作为一个临时的解决方法,直到修复,这对我有用.
为此,我使用自己的SeleniumTestCase扩展PHPUnit_extensions_SeleniumTestCase,并将这些函数放入其中:
这个功能的略微修改版本供我自己使用:https://stackoverflow.com/a/6608751
PRotected function dumpStack(Exception $e) { $stack = ''; foreach ($e->getTrace() as $trace) { if (isset($trace['file']) && isset($trace['line']) && isset($trace['class']) && isset($trace['function'])) { $stack .= PHP_EOL . $trace['file'] . ':' . $trace['line'] . ' ' . $trace['class'] . '::' . $trace['function']; } } return $stack; }
我从PHPUnit_Extensions_SeleniumTestCase覆盖onNotSuccessfulTest:
protected function onNotSuccessfulTest(Exception $e) { try { parent::onNotSuccessfulTest($e); } catch (PHPUnit_Framework_IncompleteTestError $e) { // Don't do anything with the incomplete test exception throw $e; } catch (PHPUnit_Framework_SkipPEdTestError $e) { // Don't do anything with the skipped test exception throw $e; } catch (Exception $e_parent) { // Include line number for specific test file in error $error_msg = chr(10).chr(10).$this->dumpStack($e); throw new PHPUnit_Framework_Error($e_parent->getMessage().$error_msg,$e_parent->getCode(),$e_parent->getFile(),$e_parent->getLine(),$e_parent->getTrace()); } }
我不喜欢这个黑客,所以如果有人有更好的解决方案,我会很高兴听到它!
更新:我最初忘了提到这一点:你当然必须让测试扩展你自己的自定义SeleniumTestCase,而不是PHPUnit_Extensions_SeleniumTestCase.
以上是脚本宝典为你收集整理的php – Selenium不会显示失败的数字行全部内容,希望文章能够帮你解决php – Selenium不会显示失败的数字行所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。