"Веб-интерфейс" для тестов PHPUnit?
Существует ли простой "веб-интерфейс" для запуска наборов тестов PHPUnit? то есть PHP script, который запускает тест в командной строке и выводит хорошо отформатированный результат HTML.
Я разрабатываю веб-приложения, и повседневный рабочий процесс обычно переключается между IDE и браузером. Я хотел бы иметь модульное тестирование в той же среде.
Я ищу что-то очень простое и основанное на PHP - я планирую попасть в phpUnderControl (у которого есть функциональность, которую я ищу), но еще нет.
Ответы
Ответ 1
Вы можете использовать phing для запуска PHPUnitTask, а затем преобразовать вывод с помощью:
- PHPUnitReport - Эта задача преобразует отчеты PHPUnit xml в HTML с помощью XSLT.
Пример:
<phpunitreport infile="reports/testsuites.xml"
format="frames"
todir="reports/tests"
styledir="/home/phing/etc"/>
См. phpunit --help
для различных форматов вывода.
2.3 версия PHPUnit имела главу об этом, но она ушла в течение некоторого времени. Возможно, вы сможете найти старую копию с Google.
Поскольку вы упомянули об этом для phpUnderControl: если вы не исправили это, подумайте об использовании Jenkins и http://jenkins-php.org.
На стороне примечания: если мы не говорим о серверах CI, большинство людей, которых я знаю, не используют PHPUnit через веб-интерфейс. Они либо просто используют командную строку, либо интеграцию с IDE.
Ответ 2
Недавно я обнаружил Visual PHPUnit
, который выглядит очень приятным интерфейсом для всех, кто не хочет для запуска PHPUnit из командной строки:
Кажется, следующая итерация @Matt PHPUnit Test Report
Ответ 3
Я чувствую ваше разочарование - я сам пользовательский интерфейс. Глядя на терминал слишком долго, моя голова вращается. Я написал небольшое небольшое приложение, которое может вам помочь.
PHPUnit test application http://mattmueller.me/blog/wp-content/uploads/2010/06/test.png
Вы можете найти его здесь: http://mattmueller.me/blog/introducing-phpunit-test-report
Ура!
Matt
Ответ 4
После нескольких часов исследований недавно лучший веб-интерфейс PHPUnit, с которым я столкнулся, был https://github.com/NSinopoli/VisualPHPUnit
Ответ 5
Вы можете использовать Jenkins для запуска любых задач, включая тесты PHPUnit. Он может автоматически проверять ваше приложение, запускать тесты, создавать HTML-отчет и даже отправлять вам по электронной почте, если сборка завершилась неудачей.
Здесь в шаблонах вам нужно настроить Jenkins для создания кучи интересных отчетов и статистики из вашего проекта.
Ответ 6
Я никогда не видел такого веб-интерфейса... Но, как вы говорите, вы всегда используете свою среду IDE и свой веб-браузер, почему бы не подумать иначе?
то есть. возможным решением было бы запустить unittests из вашей IDE;-)
Что означает, что вы должны иметь возможность щелкнуть по неудачным тестам, чтобы "перейти" к методу тестирования или к причине, из-за которой, например, произошел сбой теста.
В мире PHP + PHPUnit я знаю, что Zend Studio делает это - да, это несвободно, - (
Используя Eclipse PDT, решением было бы зарегистрировать PHPUnit в качестве внешнего инструмента (см. Или экземпляр этого блога: Использование PHPUnit с Eclipse PDT) но это совсем не сексуально, и вы не можете нажать на результаты, чтобы перейти к методам/тестам...
Другим решением было бы разработать плагин для интеграции PHPUnit в Eclipse PDT (как это было сделано для Zend Studio, я полагаю) - A phpunit4eclipse был создан некоторое время назад, но это просто начало и не получило много успехов, поэтому автор не работал над этим после выпуска этого...
Ответ 7
Я нашел this:
Я столкнулся с сообщением от Parth Patil, решение которого состояло в том, чтобы создать xml-отчет из PHPUnit, а затем использовать этот xml для создания собственного отчета.
Я использовал его решение, сделал его совместимым с PHPUnit 3.4, а также добавил Reflection, чтобы увидеть комментарии к документу в тестовом сценарии в отчете. (Примечание: для переизбрания я использую класс отражения Zend_Framework)
Ответ 8
Хорошо, вы сказали, что предпочтете независимое решение IDE, но просто знаете, что есть недавний плагин, который позволяет запускать PHPUnit просто в Eclipse и иметь приятное представление (например, в Zend Studio, но бесплатно).
Вот ссылка, главный разработчик быстро отвечает на электронные письма, если у вас есть проблема:
http://www.phpsrc.org/wiki/
Я лично проверил некоторый веб-интерфейс, но меня всегда обманывали (не совсем практичные и стабильные). Но это ваш выбор.
Ответ 9
jframework также имеет приятный интерфейс для PHPUnit. Он разбивает результаты и показывает охват тестирования для всех файлов и каждого файла отдельно.
Он работает как в Интернете, так и в cli, причем cli имеет преимущество сброса каждого теста после его завершения (веб-серверу приходится ждать, пока все не закончится).
Ответ 10
Вы всегда можете использовать Maven для PHP, из которого вы можете использовать отчеты surefire (сайт mvn).
Подробнее здесь: http://www.php-maven.org
Ответ 11
Если вам не нужно переформатировать вывод и просто хотите запустить PHPUnit с веб-страницы, вы можете сделать это с помощью некоторого PHP-кода:
<pre>
<?php
$argv[0] = "phpunit.phar";
$argv[1] = '--bootstrap';
$argv[2] = 'src/load.php';
$argv[3] = "tests/MoneyTest";
$_SERVER['argv'] = $argv;
include 'phpunit.phar';
?>
</pre>
Файл src/load.php - это всего лишь куча включений для включения классов. Результат будет выглядеть следующим образом:
#!/usr/bin/env php
PHPUnit 4.1.2 by Sebastian Bergmann.
........................
Time: 122 ms, Memory: 3.25Mb
OK (24 tests, 43 assertions)
Просто проигнорируйте эту первую строку, и вы увидите результаты.
Я шокирован тем, что PHPUnit не включает в себя базовый способ сделать это. Некоторые классы могут зависеть от веб-сервера. Мы просто не проверяем их? На некоторых сайтах вы загружаете свои файлы и не разрешаете выполнение командной строки.