«Веб интерфейс» к тестам PHPUnit? - PullRequest
47 голосов
/ 11 марта 2010

Есть ли простой "веб-интерфейс" для запуска тестовых пакетов PHPUnit? то есть PHP-скрипт, который запускает тест в командной строке и выводит хорошо отформатированный результат HTML.

Я занимаюсь разработкой веб-приложений, и рабочий процесс обычно переключается между IDE и браузером. Я хотел бы провести модульное тестирование в той же среде.

Я ищу что-то действительно простое и основанное на PHP - я планирую попасть в phpUnderControl (который обладает нужной мне функциональностью), но пока нет.

Ответы [ 11 ]

26 голосов
/ 20 декабря 2011

Я недавно обнаружил Visual PHPUnit, который выглядит как очень очень хороший интерфейс для всех, кто не хочет запускать PHPUnit из командной строки:

Visual PHPUnit

Кажется, это следующая итерация @ Matt's PHPUnit Test Report

21 голосов
/ 28 июня 2010

Я чувствую твое разочарование - я сам парень с интерфейсом. Слишком долго глядя на терминал, у меня кружится голова. Я написал небольшое небольшое приложение, которое может оказаться полезным.

Тестовое приложение PHPUnit http://mattmueller.me/blog/wp-content/uploads/2010/06/test.png

Вы можете найти его здесь: http://mattmueller.me/blog/introducing-phpunit-test-report

Ура! Matt

18 голосов
/ 01 июня 2011

После нескольких часов исследований, лучшим веб-интерфейсом PHPUnit, с которым я столкнулся, был https://github.com/NSinopoli/VisualPHPUnit

12 голосов
/ 11 марта 2010

Вы можете использовать phing для запуска PHPUnitTask , а затем преобразовать вывод с помощью:

  • PHPUnitReport - Эта задача преобразует XML-отчеты PHPUnit в 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.

7 голосов
/ 14 июня 2011

Вы можете использовать Jenkins для запуска любых задач, включая тесты PHPUnit. Он может автоматически проверять ваше приложение, запускать тесты, создавать HTML-отчет и даже отправлять вам электронные письма в случае сбоя сборки.

Вот шаблоны , вам нужно настроить Jenkins для создания множества интересных отчетов и статистики из вашего проекта.

1 голос
/ 18 августа 2013

jframework также имеет приятный интерфейс для PHPUnit. Он разбивает результаты и показывает тестовое покрытие для всех файлов и каждого файла в отдельности. Он работает как в интернете, так и в клике, при этом клиент получает выгоду от выгрузки каждого теста после его завершения (веб-сервис должен ждать, пока все не закончится).

General web output, with code coverage per file

Code coverage report for a single file

1 голос
/ 17 марта 2010

Хорошо, вы сказали, что предпочли бы независимое решение IDE, но просто знаете, что есть недавний плагин, позволяющий выполнять PHPUnit просто в Eclipse и имеющий хорошее представление (как в Zend Studio, но бесплатно).

Вот ссылка, основной разработчик также быстро отвечает на электронные письма, если у вас есть проблема:

http://www.phpsrc.org/wiki/

Я лично проверил некоторый веб-интерфейс, но меня всегда обманывали (не очень практично и стабильно). Но это твой выбор.

1 голос
/ 11 марта 2010

Я нашел это :

Я наткнулся на сообщение от Parth Patil, решение которого состояло в том, чтобы создать xml-отчет из PHPUnit, а затем использовать этот xml для создания собственного отчета.

Я использовал его решение, сделал его совместимым с PHPUnit 3.4, а также добавил Reflection, чтобы увидеть мои комментарии к тестам в отчете. (Примечание: для ссылки я использую класс отражения Zend_Framework)

1 голос
/ 11 марта 2010

Я никогда не видел такого веб-интерфейса ... Но, как вы говорите, вы всегда используете IDE и веб-браузер, почему бы не подумать иначе?

т.е. Возможное решение - запустить юнит-тесты из вашей IDE ;-)
Это означает, что вы должны быть в состоянии щелкнуть по провалившимся тестам, чтобы "перейти" либо к методу теста, либо к причине, вызвавшей, например, неудачу теста.


В мире PHP + PHPUnit я знаю, что Zend Studio делает это - да, к сожалению, это не бесплатно; - (


Используя Eclipse PDT, решением было бы зарегистрировать PHPUnit в качестве внешнего инструмента (см. Или создайте экземпляр этого блога: Использование PHPUnit с Eclipse PDT ) - но это совсем не привлекательно, и вы не можете нажать на результаты, чтобы прыгать методы / тесты ...

Другим решением будет разработка плагина для интеграции PHPUnit в Eclipse PDT (как это было сделано для Zend Studio, я полагаю) - phpunit4eclipse был создан некоторое время назад , но это только начало, и оно не принесло большого успеха, поэтому автор не работал над этим после выпуска этого ...

0 голосов
/ 08 июня 2014

Если вам не нужно переформатировать вывод и просто хотите запустить PHPUnit с веб-страницы, вы можете сделать это с помощью некоторого PHP-кода, подобного следующему:

<code><pre>
<?php 
$argv[0] = "phpunit.phar";
$argv[1] = '--bootstrap';
$argv[2] = 'src/load.php';
$argv[3] = "tests/MoneyTest";
$_SERVER['argv'] = $argv;
include 'phpunit.phar';
?>

Файл 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 не включает базовый способ сделать это.Некоторые классы могут зависеть от веб-сервера.Разве мы не тестируем их?На некоторых сайтах вы загружаете свои файлы и не разрешаете выполнение командной строки.

...