0

我使用 phpunit & phpundercontrol 在每个构建中运行 RC Selenium。

4

2 回答 2

1

PHPUnit 允许您实现自己的TestListener自定义测试侦听器在PHPUnit_Framework_TestListener接口中实现抽象方法。具体来说,您的侦听器将实现:

  • 开始测试套件()
  • 结束测试套件()
  • 开始测试()
  • 结束测试()
  • 添加错误()
  • 添加失败()
  • addSkippedTest()
  • addIncompleteTest()

附加 TestListner 后,每次在测试套件中发生相应事件时,都会调用这些方法。将编写这些方法以在您将创建的测试结果数据库上执行INSERTUPDATE 。

将侦听器类附加到您的套件就像添加一个标记到phpunit.xml配置文件。例如:

<phpunit>
  <testsuites>[...]</testsuites>
  <selenium>[...]</selenium>
  <listeners>
    <listener class="Database" 
              file="/usr/loocal/share/pear/PHPUnit/Util/Log/Database.php">
  </listeners>
</phpunit>

这就是你所需要的!

事实上,PHPUnit 已经附带了我刚才描述的侦听器的工作版本(PHPUnit_Util_Log_Database),以及两个不同的数据库模式定义。

在许多系统上,此类将位于/usr/local/share/pear/PHPUnit/Util/Log/Database.php,而架构位于/usr/local/share/pear/PHPUnit/Util/Log/Database/MySQL。 sql/usr/local/share/pear/PHPUnit/Util/Log/Database/SQLite3.sql。根据您使用的 DBMS,您可能需要进行一些调整。


请参阅文档的这些部分(它不会让我发布两个链接:

http://www.phpunit.de/manual/3.4/en/extending-phpunit.html#extending-phpunit.PHPUnit_Framework_TestListener

htp://www.phpunit.de/manual/3.4/en/api.html#api.testresult.tables.testlistener

(StackOverflow 不允许我发布两个链接,因此您必须在第二个链接中更正 HTTP)

于 2011-01-21T03:52:28.757 回答
0

我正在解决同样的问题。

几天前在这里问了一个相关的问题。

我尝试使用 Selenium IDE、Selenium RC 和 perl。

总体策略:

您可以使更新版本的 phpunit 生成 TAP 输出(选项 --tap、--log-tap)。

(TAP 是测试任何协议 - 标准化输出格式)

解析日志文件以从 TAP 解析器对象中获取套件元数据,使用 perl 插入数据库,例如 "# Number of Passed": , "Failed", "Unexpectedly succeeded",

于 2010-11-10T15:09:15.680 回答