Есть ли способ зарегистрировать ошибки / сбои теста 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 неожиданно успешно",