我正在使用PHPUnit 3.4.12进行selenium测试。我希望能够在测试失败时自动获取屏幕截图。如http://www.phpunit.de/manual/current/en/selenium.html#selenium.seleniumtestcase.examples.WebTest2.php中所述,应该对此提供支持。
class WebTest { protected $captureScreenshotOnFailure = true; protected $screenshotPath = 'C:\selenium'; protected $screnshotUrl = 'http://localhost/screenshots'; public function testLandingPage($selenium) { $selenium->open("http://www.example.com"); $selenium->fail("fail"); ... } }
如您所见,由于我正在Windows上运行selenium RC服务器,因此我认为该测试将失败,并且理论上应该在进行测试时将其截图并放在C:\ selenium中。
但是,当我运行测试时,它只会给我以下内容:
[root@testbox selenium]$ sh run PHPUnit 3.4.12 by Sebastian Bergmann. F Time: 8 seconds, Memory: 5.50Mb There was 1 failure: 1) WebTest::testLandingPage fail /home/root/selenium/WebTest.php:32 FAILURES! Tests: 1, Assertions: 0, Failures: 1.
我在C:\ selenium中看不到任何屏幕截图。但是,我可以使用$ selenium-> captureScreenshot(“ C:/selenium/image.png”);获得屏幕截图。
任何想法或建议最欢迎。
谢谢
phpunit的错误处理能力很差;如果一切都不尽如人意,它将无提示地忽略您的其他选择。
如Dave所述,如果任何变量的拼写错误,它都将无法正常工作,并且您也可以尝试将其分配给setUp中的实例。
另外,并非每个条件都会触发屏幕截图。尝试$ selenium-> assertTextPresent(“ foobarbaz”)代替$ selenium-> fail()进行健全性检查。