一尘不染

PHPUnit Selenium captureScreenshotOnFailure无法正常工作吗?

selenium

我正在使用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”);获得屏幕截图。

任何想法或建议最欢迎。

谢谢


阅读 278

收藏
2020-06-26

共1个答案

一尘不染

phpunit的错误处理能力很差;如果一切都不尽如人意,它将无提示地忽略您的其他选择。

如Dave所述,如果任何变量的拼写错误,它都将无法正常工作,并且您也可以尝试将其分配给setUp中的实例。

另外,并非每个条件都会触发屏幕截图。尝试$ selenium-> assertTextPresent(“ foobarbaz”)代替$ selenium->
fail()进行健全性检查。

2020-06-26