有没有办法将LOG RC Selenium测试错误/故障导入数据库?

时间:2009-10-23 11:46:35

标签: mysql selenium phpunit phpundercontrol

我正在使用phpunit& phpundercontrol在每次构建时运行RC Selenium。

2 个答案:

答案 0 :(得分:1)

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

  • startTestSuite()
  • endTestSuite()
  • startTest()
  • endTest()
  • addError()
  • addFailure()
  • addSkippedTest()
  • addIncompleteTest()

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

将侦听器类附加到套件就像将 标记添加到 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/loocal/share/pear/PHPUnit/Util/Log/Database.php ,以及 / usr / loocal / share中的模式/pear/PHPUnit/Util/Log/Database/MySQL.sql /usr/loocal/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)

答案 1 :(得分:0)

我正在研究同样的问题。

几天前问过here相关问题。

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

一般策略:

你可以制作更新版本的phpunit生成TAP输出(选项--tap, - log-tap)。

(TAP是Test Anything Protocol - 标准化输出格式)

解析日志文件以从TAP解析器对象获取套件元数据,使用perl插入数据库,例如: “#Passsed”:,“失败”,“意外成功”,