是否可以从PHPUnit运行HTML测试套件?

Chr*_*ris 5 php selenium phpunit code-coverage selenium-ide

我想测量一个用于selenium的HTML测试套件的代码覆盖率.因此我想使用PHPUnit来执行套件,因为PHPUnit对代码覆盖率分析有很好的支持.

因此:是否可以从PHPUnit运行HTML测试套件?

Pot*_*rca 5

简短的回答

运行单个HTML测试文件不是问题,但运行HTML套件文件似乎不起作用.只要您将所有HTML测试文件从一个西装放在目录中,您就可以运行runSelenese($folderName)

答案很长

我不知道直到我进行更多的挖掘才能直接运行Selenium HTML文件.

做的是转换/先用它们导出硒IDE PHP格式化插件的Firefox.

显然这不是必要的.一直到Chapter 17. PHPUnit and Selenium 手册底部说明:

使用该runSelenese($filename)方法,您还可以从Selenese/HTML规范运行Selenium测试.此外,使用static属性$seleneseDirectory,您可以从包含Selenese/HTML文件的目录中自动创建测试对象.递归搜索指定目录以查找预期包含Selenese/HTML的.htm文件.例17.5给出了一个例子.

例17.5:使用Selenese/HTML文件目录作为测试

<?php
require_once 'PHPUnit/Extensions/SeleniumTestCase.php';

class SeleneseTests extends PHPUnit_Extensions_SeleniumTestCase
{
    public static $seleneseDirectory = '/path/to/files';
}
?>
Run Code Online (Sandbox Code Playgroud)

在PHPUnit中进行测试后,您可以使用它从Selenium Server获取代码覆盖率.

再次,从手册:

PHPUnit_Extensions_SeleniumTestCase可以收集通过Selenium运行的测试的代码覆盖率信息:

  1. 复制PHPUnit/Extensions/SeleniumTestCase/phpunit_coverage.php到Web服务器的文档根目录.
  2. 在您的Web服务器的php.ini配置文件中,分别配置PHPUnit/Extensions/SeleniumTestCase/prepend.phpPHPUnit/Extensions/SeleniumTestCase/append.php作为auto_prepend_file和auto_append_file.
  3. 在扩展的测试用例类中PHPUnit_Extensions_SeleniumTestCase,用于
    protected $coverageScriptUrl = 'http://host/phpunit_coverage.php';
    配置phpunit_coverage.php脚本的URL .

由于这可能有点麻烦,我总是只使用Page Coverage插件来深入了解HTML页面覆盖.