Есть ли способ зарегистрировать ошибки / сбои теста RC RC Selenium в базе данных? - PullRequest
0 голосов
/ 23 октября 2009

Я использую phpunit & phpundercontrol для запуска RC Selenium при каждой сборке.

Ответы [ 2 ]

1 голос
/ 21 января 2011

PHPUnit позволяет вам реализовать свой собственный TestListener . Пользовательские слушатели теста реализуют абстрактные методы в интерфейсе PHPUnit_Framework_TestListener . В частности, ваш слушатель будет реализовывать:

  • startTestSuite ()
  • endTestSuite ()
  • StartTest ()
  • endTest ()
  • addError ()
  • addFailure ()
  • addSkippedTest ()

Как только вы подключите TestListner, эти методы будут вызываться каждый раз, когда в вашем наборе тестов происходят соответствующие события. Эти методы будут написаны для выполнения INSERT и 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 . Возможно, вам придется внести некоторые изменения в зависимости от используемой СУБД.


Смотрите эти разделы документации (я не буду публиковать две ссылки:

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 во второй)

0 голосов
/ 10 ноября 2010

Я работаю над той же проблемой.

Задал связанный вопрос здесь несколько дней назад.

Моя попытка использовать Selenium IDE, Selenium RC и Perl.

Общая стратегия:

Вы можете сделать более новые выпуски phpunit сгенерировать вывод TAP (опции --tap, --log-tap).

(TAP - это протокол Test Anything - стандартный формат вывода)

Анализировать файл журнала, чтобы получить метаданные комплекта из объекта синтаксического анализатора TAP, вставить в базу данных, используя perl, например, "# Number of Passed":, "Failed", "неожиданно успешно",

...