Как Хадсон, работающий на JVM, вызывает phpUnit, который требует php-контейнер? - PullRequest
1 голос
/ 26 июня 2011

Я использую Hudson для CI и внутри него Phing для автоматического тестирования. Когда я указываю задачу phpunit в build.xml, запускается набор тестов. Мой вопрос: как это происходит? Хадсон работает внутри JVM, в то время как PHP требует контейнер PHP.

Кажется, что PHP установлен как автономное приложение CLI. Если это так, то я могу как-то запустить тесты, написанные на phpRack, который не поддерживается Phing. Правильно? Но как?

Я искал это, но кажется, что phpRack не очень хорошо поддерживается другими.

Ответы [ 3 ]

3 голосов
/ 26 июня 2011

Ant использует задачу <exec> для запуска большинства внешних инструментов, таких как PHPUnit.Если PhpRack имеет режим CLI, вы можете использовать его таким же образом.Тем не менее, вам потребуется постпроцессор для вывода, чтобы определить, прошел или не прошел.

Редактировать: Упс, как я пропустил Phing?ЛОЛ.Тот же принцип применяется, как и другие описанные ответы.

2 голосов
/ 27 июня 2011

Как упоминалось в предыдущих ответах, вы можете запускать что угодно в Phing, если вы можете запускать его из оболочки.Что вы ищете в конфигурации работы в Hudson / Jenkins:

Добавить шаг сборки -> Выполнить оболочку -> Команда .

Там просто поместите что-то вроде /usr/bin/php /path/to/your/script.php, и оно будет выполнено.

Примечание: есть пример интеграции Phing phpRack, так что вы можете использовать это: https://github.com/tpc2/phprack/wiki/Phing

2 голосов
/ 27 июня 2011

Хадсон / Дженкинс не вызывает PHP напрямую, а с помощью вашего файла сборки. Ваш phing.xml или ant.xml или все, что вы используете.

И этот файл просто запускает обычные системные вызовы (в php вы бы сделали system("/usr/bin/php file.php"); или что-то подобное.

Так что если вы и вызываете инструмент командной строки, он просто так его называет. Если вы отправляете http-запрос (как показывают примеры phpRack), вам нужно убедиться, что у вас установлен работающий веб-сервер и URL-адрес доступен так же, как браузер будет обращаться к нему.

...