我想测量 selenium 的 HTML 测试套件的代码覆盖率。因此我想使用 PHPUnit 来执行套件,因为 PHPUnit 对代码覆盖率分析有很好的支持。
因此:是否可以从 PHPUnit 运行 HTML 测试套件?
我想测量 selenium 的 HTML 测试套件的代码覆盖率。因此我想使用 PHPUnit 来执行套件,因为 PHPUnit 对代码覆盖率分析有很好的支持。
因此:是否可以从 PHPUnit 运行 HTML 测试套件?
运行单个 HTML 测试文件不是问题,但运行 HTML 套件文件似乎不起作用。只要您将西装中的所有HTML测试文件自己放在一个目录中,您就可以运行runSelenese($folderName)
在我进行更多挖掘之前,我不知道直接运行 Selenium HTML 文件甚至是可能的。
我以前做的是首先使用Selenium IDE PHP Formatter Firefox 插件转换/导出它们。
显然这是没有必要的。手册底部的一路Chapter 17. PHPUnit and Selenium
状态:
使用该
runSelenese($filename)
方法,您还可以从 Selenese/HTML 规范运行 Selenium 测试。此外,使用静态属性$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'; } ?>
在 PHPUnit 中完成测试后,您可以使用它从 Selenium 服务器获取代码覆盖率。
同样,来自手册:
PHPUnit_Extensions_SeleniumTestCase 可以为通过 Selenium 运行的测试收集代码覆盖率信息:
- 复制
PHPUnit/Extensions/SeleniumTestCase/phpunit_coverage.php
到您的网络服务器的文档根目录。- 在您的网络服务器的
php.ini
配置文件中,将PHPUnit/Extensions/SeleniumTestCase/prepend.php
和PHPUnit/Extensions/SeleniumTestCase/append.php
分别配置为 auto_prepend_file 和 auto_append_file。- 在扩展的测试用例类中
PHPUnit_Extensions_SeleniumTestCase
,用于配置脚本
protected $coverageScriptUrl = 'http://host/phpunit_coverage.php';
的 URL 。phpunit_coverage.php
由于设置起来可能有点麻烦,我一直只是使用页面覆盖率插件来深入了解 HTML 页面覆盖率。
单元测试 PHP HTML 输出是一个好主意。更多的人应该这样做,但事实证明,过去并没有那么简单。
我有同样的问题,可以解决这个问题:https ://packagist.org/packages/phpfui/html-unit-tester 它可以从 URL、文件或字符串片段验证 HTML 和 CSS。
为了做你想做的事,你应该设置一个本地网络服务器,你的测试可以为你的应用程序命中。您可能已经拥有它,但请确保它适用于您的本地环境和您运行测试的任何服务器。
然后,您可以使用带有本地服务器路径的 assertValidUrl 方法。由于您不是在与模板进行比较,而只是测试 HTML 是否有效,因此您可以快速找到最近引入的 HTML 错误。
希望这可以帮助。