Интеграция тестов YUI с CruiseControl - PullRequest
0 голосов
/ 09 июня 2010

Я использую YUI для тестирования своего приложения JavaScript и хочу интегрировать результаты теста в мою систему сборки CruiseControl.Как я могу использовать CruiseControl для запуска тестов?Сначала я задумывался об использовании плагина JUnit для запуска тестов, но этого не произошло.

У кого-нибудь еще это работает?

(Обратите внимание: изменение YUI или CruiseControl для меня не вариант.)

Ответы [ 2 ]

2 голосов
/ 10 июня 2010

У нас есть тесты YUI, интегрированные с Hudson для наших сборок CI. Процесс должен быть практически идентичен для CC, так как мы запускаем тестирование через задачу Java в ANT.

У нас есть драйвер селена (подразумевается Java - мы работаем над тем, чтобы сделать его общедоступным), который обращается к экземпляру SeleniumRC, указывая его на файлы HTML в рабочей области сборки для запуска тестов.

Вы можете попробовать написать собственный драйвер селена: http://seleniumhq.org/docs/05_selenium_rc.html#learning-the-api

Код драйвера обращается к экземпляру SeleniumRC и просит его запустить браузер, указывающий на тестовые файлы HTML на основе теста YUI из сборки.

Файлы HTML запускают YUI Test Runner при загрузке, а драйвер вводит код при загрузке страницы, чтобы получить результаты теста из YUI Test Runner, когда он завершится, и сохранить их в виде файлов для анализа Hudson.

С уважением, Satyen

Команда YUI

0 голосов
/ 08 января 2011

Мое решение, в конце концов, немного взломано.

  • Я изменил HTML-страницу нашего тестового бегуна, чтобы публиковать результаты теста (весь создаваемый им объект XML) в PHPзатем закрыть страницу.
  • Я добавил страницу PHP на сервер сборки (с процессором PHP, подключенным к экземпляру Apache HTTPD), чтобы принять опубликованный документ XML и сохранить его на диск.
  • Модульные тесты теперь выполняются «драйвером теста», который запускает браузер с HTML-страницей бегуна тестов и ожидает завершения процесса браузера.

Получается результаттесты на локальный диск сервера сборки.Затем я объединяю выходной файл в журнал CC, добавляя в конфигурацию проекта следующее:

<log>
    <merge file="path_to_file" />
</log>

Есть несколько недостатков, но (в настоящее время) они готовы жить с ними:

  • Пришлось добавить приложение для запуска тестов в инфраструктуру
  • Пришлось добавить сервер Apache и процессор PHP на сборочную машину
  • Поскольку только IE разрешит странице браузера закрываться самостоятельнобез запроса пользователя сервер сборки должен быть машиной Windows.
...