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

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

2 ответа

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

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

Как только вы подключите TestListner, эти методы будут вызываться каждый раз, когда в вашем наборе тестов происходят соответствующие события. Эти методы будут написаны для выполнения INSERT и UPDATE в базе данных результатов теста, которую вы создадите.

Присоединить класс слушателя к вашему набору так же просто, как добавить тег к файлу конфигурации 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

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

(Stackru не позволяет мне публиковать две ссылки, поэтому вам придется исправить HTTP во второй)

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

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

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

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

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

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

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

Другие вопросы по тегам