que - ¿Interfaz web para las pruebas PHPUnit?
pruebas unitarias php (11)
¿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 comando y genera un resultado HTML con un buen formato.
Desarrollo 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.
Después de varias horas de investigación recientemente, la mejor interfaz web de PHPUnit con la que me he encontrado es https://github.com/NSinopoli/VisualPHPUnit.
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é alguna Reflexión para ver mis comentarios de doc de prueba en el informe. (Nota: para la reflexión utilizo la clase de reflexión Zend_Framework)
Nunca he visto una interfaz web así ... Pero, como dices, siempre estás usando tu IDE y tu navegador web, ¿por qué no piensas lo contrario?
es decir, una posible solución sería lanzar los unittest desde su IDE ;-)
Lo que significa que debe poder hacer clic en las pruebas fallidas para "saltar" ya sea al método de prueba o al motivo que causó la falla de la prueba, por ejemplo.
En el mundo de PHP + PHPUnit, sé que Zend Studio hace eso, sí, no es gratis, desafortunadamente;
Usando Eclipse PDT, una solución sería registrar PHPUnit como una herramienta externa (ver o instanciar este blogpost: Usando PHPUnit con Eclipse PDT ) - pero no es muy sexy, y no puedes 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, supongo) . Hace un phpunit4eclipse se creó un phpunit4eclipse , pero es solo un comienzo y no tuvo mucho éxito, entonces el autor no trabajó en eso después de liberar eso ...
Ok, dijiste que preferirías una solución IDE independiente, pero para que sepas que hay un plugin reciente que permite ejecutar PHPUnit simplemente en Eclipse, y tener una buena representación (como en Zend Studio, pero de forma gratuita).
Aquí está el enlace, el desarrollador principal responde rápidamente a los correos electrónicos también si tiene un problema:
Personalmente probé alguna interfaz web, pero siempre me han engañado (no realmente estable y estable). Pero esta es tu elección.
Puede usar Jenkins para ejecutar cualquier tipo de tarea, incluidas las pruebas de 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.
Aquí están las plantillas que necesita para configurar a Jenkins para que cree un montón de informes y estadísticas interesantes de su proyecto.
Puede usar phing para ejecutar una PHPUnitTask y luego convertir la salida con:
- PHPUnitReport - Esta tarea transforma los informes de PHPUnit xml en HTML usando 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.
Como mencionas que esto es para phpUnderControl: si no estás preparado para eso, considera 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.
Recientemente descubrí Visual PHPUnit
que parece una interfaz muy agradable para todos los que no desean ejecutar PHPUnit desde la línea de comandos:
Parece ser la próxima iteración del PHPUnit Test Report
de @ Matt
Si no te importa volver a formatear la salida y solo quieres ejecutar PHPUnit desde una página web, puedes hacerlo con un código PHP como este:
<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 ignora esa primera línea y puedes 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.
Siempre puede usar Maven para PHP desde el que puede usar los informes infalibles (sitio mvn). Más información aquí: http://www.php-maven.org
Siento tu frustración. Soy un tipo UI. Mirar la terminal demasiado tiempo hace que mi cabeza gire. Escribí una pequeña aplicación rápida que podría ser útil.
Aplicación de prueba PHPUnit http://mattmueller.me/blog/wp-content/uploads/2010/06/test.png
Puede encontrarlo aquí: http://mattmueller.me/blog/introducing-phpunit-test-report
¡Aclamaciones! Mate
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).