"Веб-интерфейс" для тестов PHPUnit?


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

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

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

Author: Pekka 웃, 2010-03-11

11 answers

Вы можете использовать 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: если вы не уверены в этом, подумайте об использовании Дженкинса и http://jenkins-php.org.

На заметку: если мы не говорим о серверах CI, большинство людей, которых я знаю, не используют PHPUnit через веб-интерфейс. Они либо просто используют командную строку, либо их интеграцию с IDE.

 12
Author: Gordon, 2016-10-10 11:43:39

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

Visual PHPUnit

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

 25
Author: edorian, 2011-12-20 12:40:26

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

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

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

Ура! Мэтт

 21
Author: Matt, 2010-06-28 10:02:03

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

 18
Author: Motin, 2011-05-31 22:46:54

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

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

 7
Author: Tom, 2011-06-14 16:48:00

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

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


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


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

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

 1
Author: Pascal MARTIN, 2010-03-11 11:31:37

Я нашел это:

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

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

 1
Author: Pekka 웃, 2010-03-11 11:37:54

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

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

Http://www.phpsrc.org/wiki/

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

 1
Author: Matthieu Napoli, 2010-03-17 15:21:47

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

General web output, with code coverage per file

Code coverage report for a single file

 1
Author: AbiusX, 2013-08-18 15:16:56

Вы всегда можете использовать Maven для PHP, из которого вы можете использовать отчеты surefire (сайт mvn). Более подробная информация здесь: http://www.php-maven.org

 0
Author: Softy, 2010-05-14 07:27:29

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

 0
Author: Charles, 2014-06-08 17:31:28