2010-03-11 20 views
45

¿Hay una simple "interfaz web" para ejecutar suites de prueba PHPUnit? es decir, un script PHP que ejecuta la prueba en la línea de comandos y genera un resultado HTML con un buen formato."Interfaz web" para pruebas PHPUnit?

Desarrollo de aplicaciones web, y el flujo de trabajo diario generalmente cambia entre el IDE y el navegador. Me gustaría tener la unidad probando en el mismo entorno.

Estoy buscando algo realmente simple y basado en PHP - Estoy planeando entrar en phpUnderControl (que tiene la funcionalidad que estoy buscando) pero todavía no.

+0

+1 Di Pekka, no puedes leer mi mente, ¿o sí? – middus

+0

@middus hay coincidencias * sorprendentes * en SO a veces. :) –

+0

También es posible que desee ver a Hudson como una alternativa para phpUnderControl. Un buen artículo (con algunas buenas referencias en línea) sobre cómo configurarlo se puede encontrar en http://luhman.org/blog/2009/12/16/installing-hudson-phing-phpunit-and-git-ubuntu – wimvds

Respuesta

12

Se puede utilizar para ejecutar un Phing PHPUnitTask y luego convertir la salida con:

  • PHPUnitReport - Esta tarea se transforma informes XML a HTML PHPUnit mediante XSLT.

Ejemplo:

<phpunitreport infile="reports/testsuites.xml" 
    format="frames" 
    todir="reports/tests" 
    styledir="/home/phing/etc"/> 

Ver phpunit --help para los diferentes formatos de salida.

La versión 2.3 de PHPUnit tenía un capítulo sobre esto, pero ya pasó hace algún tiempo. Es posible que pueda encontrar una copia antigua con Google en alguna parte.

Dado que usted menciona que esto es para phpUnderControl: si no está reparado en eso, considere usar Jenkins y http://jenkins-php.org.

En una nota al margen: a menos que hablemos de servidores de CI, la mayoría de las personas que conozco no usan PHPUnit a través de una interfaz web. Simplemente usan la línea de comando o su integración IDE.

+0

Cheers @Gordon esto se ve interesante. Sin embargo, me gustaría sortear la dependencia adicional, así que probaré la publicación del blog que encontré primero (ver a continuación). Si eso no funciona, volveré a esto. –

+0

@Pekka el enfoque en la publicación del blog parece similar. También utiliza el XML y luego lo reformatea a HTML. Si no quiere usar phing, puede obtener el XML de PHPUnit y usar el XSLT de Phing para transformarlo programáticamente con PHP. Creo que los archivos XSL están aquí: http://phing.info/trac/browser/trunk/etc – Gordon

+0

El enlace actual a los archivos XSL es http://www.phing.info/trac/browser/etc –

1

Nunca he visto una interfaz web ... Pero, como dices siempre estás usando tu IDE y tu navegador web, ¿por qué no piensas para otro lado?

es decir, una posible solución sería la de poner en marcha las unittests en su IDE ;-)
que significa que debe ser capaz de hacer clic en las pruebas fallan a "saltar" a cualquiera el método de ensayo, o la razón por la que causó la prueba para fallar, por ejemplo.


En el mundo de PHP + PHPUnit, sé que Zend Studio hace eso - sí, no es libre, por desgracia ;-(


Usando Eclipse PDT, una solución sería que registrarse como PHPUnit herramienta externa (ver o instancia esta entrada de blog: Using PHPUnit with Eclipse PDT) - pero no es muy sexy, y no puede hacer clic en los resultados para saltar los métodos/pruebas ...

Otra solución sería desarrollar un complemento para integrar PHPUnit en Eclipse PDT (como se hizo para Zend Studio, su ppose) - Un phpunit4eclipse fue creado hace algún tiempo, pero es sólo el comienzo, y no obtuvo mucho éxito, por lo que el autor no funcionó en él después de la liberación que ...

+0

Cheers @Pascal, buenos consejos pero no uso ni Zend ni Eclipse (utilizo phpEd). Ha pasado un tiempo desde que compré la última actualización, por lo que podría ser que esto también esté respaldado allí ahora. Definitivamente verifico, buena idea. Sin embargo, preferiría una solución independiente de IDE para esto. –

+0

De nada :-) ;; Oh, ok sobre otro IDE ^^ –

+1

Netbeans también tiene una útil GUI de PHPUnit Runner, permite la depuración de la prueba también, lo que es útil cuando las pruebas fallan/errores por razones desconocidas. –

1

encontré this:

Me tropecé con una publicación de Parth Patil, cuya solución fue crear un informe xml de PHPUnit y luego usar este xml para crear tu propio informe.

Utilicé su solución, la hice compatible con PHPUnit 3.4 y también agregué algunas Reflexiones para ver mis doc-comentarios de prueba en el informe. (Nota: Para el refelection yo uso la clase reflexión Zend_Framework)

1

Ok Usted ha dicho que prefiere una solución IDE independiente, pero sólo por lo que sé que hay un plugin reciente que permite la ejecución de PHPUnit simplemente en Eclipse, y tener una buena representación (como en Zend Studio, pero de forma gratuita).

Aquí está el enlace, el revelador principal responde rápidamente a los correos electrónicos también si usted tiene un problema:

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

personnaly He probado alguna de las interfaces web, pero siempre han sido engañados (en realidad no practital y estable). Pero esta es tu elección.

+0

Saludos, Matthieu, no uso el eclipse, pero aún es bueno saberlo.+1 –

0

Siempre puede usar Maven para PHP desde el cual puede usar los informes infalibles (sitio mvn). Más información aquí: http://www.php-maven.org

22

Siento tu frustración. Soy un tipo de UI. Mirar la terminal demasiado tiempo hace que mi cabeza gire. Escribí una pequeña aplicación rápida que podría ser útil.

PHPUnit test application http://mattmueller.me/blog/wp-content/uploads/2010/06/test.png

Se puede encontrar aquí: http://mattmueller.me/blog/introducing-phpunit-test-report

Salud! Matt

+6

La solución de Matt es genial y con esta horquilla se pone aún mejor. https://github.com/NSinopoli/VisualPHPUnit Thumbs up! – Bruiser

+0

¡Tu enlace está roto –

7

Puede utilizar Jenkins para ejecutar cualquier tipo de tareas que incluyen pruebas PHPUnit. Puede realizar el pago de su aplicación automáticamente, ejecutar las pruebas, crear un informe HTML e incluso enviarle un correo electrónico si falla la compilación.

Here's the templates necesita configurar Jenkins para crear un montón de informes y estadísticas interesantes de su proyecto.

+0

+1 por jenkins! – Matt

26

Recientemente he descubierto Visual PHPUnit que se parece a una interfaz muy agradable para todo el mundo que no quieren correr PHPUnit desde la línea de comandos:

Visual PHPUnit

Parece ser la siguiente iteración del @ Matt PHPUnit Test Report

+3

¿Es posible instalarlo sin la configuración * pera *? – Fractaliste

1

jframework también tiene una buena interfaz de usuario para PHPUnit. Rompe los resultados y muestra la cobertura de prueba en todos los archivos y cada archivo por separado. Funciona tanto en web como en cli, y el cli tiene el beneficio de descartar cada prueba una vez realizada (la basada en la web tiene que esperar hasta que todo haya terminado).

General web output, with code coverage per file

Code coverage report for a single file

0

Si no se preocupan por formatear la salida y sólo quiere correr PHPUnit desde una página web, puede hacerlo con un poco de código PHP como esto:

<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> 

El archivo src/load.php es solo un grupo de includes para incluir las clases. La salida se ve así:

#!/usr/bin/env php 
PHPUnit 4.1.2 by Sebastian Bergmann. 

........................ 

Time: 122 ms, Memory: 3.25Mb 

OK (24 tests, 43 assertions) 

Simplemente ignore esa primera línea y puede ver los resultados.

Estoy sorprendido de que PHPUnit no incluya una forma básica de hacerlo. Algunas clases pueden depender del servidor web. ¿Simplemente no probamos eso? Algunos sitios tienen que subir sus archivos y no permiten ejecuciones de línea de comandos.

Cuestiones relacionadas