2012-10-01 16 views
5

me gustaría:¿Cómo agrupar PHPUnit con mi código?

  • pruebas correr con PHPUnit independientemente de mi entorno (y si PHPUnit o PEAR está instalado o no)
  • Mostrar resultados de la prueba en la pantalla si es posible

¿Cómo puede ¿Hago esto? Intenté descargar el código here e incluir Autoload.php pero todavía tiene algunas dependencias. Tal vez hay un mejor enfoque para esto que tratar de agruparlo con mi código ...?

Respuesta

1

Las dependencias dependerán de los complementos que esté utilizando, PHPUnit por sí mismo debería ser independiente. Como no hay una solución de administración de paquetes particularmente consistente para PHP (y eliminó las opciones más viables además de la reinvención de las ruedas), su mejor opción sería incluir los archivos en el árbol de fuentes por separado del código de aplicación. Crear un directorio hermano de lo que sea APPLICATION_ROOT o similar sería el que se llama "prueba" y que tiene un directorio "lib" o similar lleno de PHPUnit y cualquier dependencia que necesite probablemente sea un buen plan. No debe haber superposición y una dependencia de un solo sentido desde el directorio de prueba al origen de la aplicación principal.

Supongo que está buscando una página de prueba automatizada de comprobación de estado, por lo que podría crear una sola página que incluya lo que se necesita de ese directorio de prueba. Idealmente, si tiene el directorio web que expone sus recursos estáticos, podría tener el archivo PHP que está a cargo de cargar el Controlador frontal para su aplicación incluyendo la carpeta de la aplicación desde fuera de la raíz del documento, y luego un segundo archivo que carga el archivo. Banco de pruebas. Eso permitiría que su directorio de aplicaciones permanezca enfocado en el código de la aplicación, el directorio de prueba para albergar su código de prueba y luego los 2 pequeños archivos de inclusión que se encargan de cargar las bases de código (con cualquier tipo de definiciones constantes compartidas, etc. también extraído y mantenido SECO).

+0

Debo incluir la biblioteca de manera incorrecta, pero no vi ninguna mención sobre cómo hacer esto en los documentos oficiales. Y sobre la "página de prueba automatizada de Healthceck", tiene que estar dentro de la carpeta del proyecto, para que pueda estar en el servidor de producción cuando implemente. No sé cómo mostrar las pruebas en la pantalla ya que la documentación solo parece hablar sobre la línea de comando. –

+0

Mostrar los resultados debe estar en la sección de generación de informes de los documentos (también podría simplemente publicar los informes en la raíz del documento). Las pruebas deben estar dentro de la carpeta desplegada si va por esa ruta, pero debe ser un hermano del directorio de código de la aplicación que no está debajo de ella. Debe haber un medio para enviar a las 2 carpetas diferentes sin tener que mezclar el código. Para la ejecución, comenzaría con el método de línea de comando (llamado a través de PHP), ya que así es como las pruebas se ejecutarían manualmente o con una herramienta de compilación, y luego veré el intercambio en las llamadas a API más adelante. –

+1

, pero ¿cómo incluir correctamente la lib de mi código? y cómo ejecutar las pruebas desde php mismo (sin la línea de comandos)? –

2

Incluir PHPUnit en los archivos de origen proyectos me gustaría sugerir la siguiente guía:

Using PHPUnit From a Git Checkout de la sección PHPUnit Contributung.

Te informa sobre todos los paquetes que necesitas instalar y muestra tu show para compilar un script runner/wrapper para el ejecutable de phpunit.

#!/bin/bash 
php -d include_path='.:../phpunit/:../dbunit/:../php-code-coverage/:../php-file-iterator/:../php-invoker/:../php-text-template/:../php-timer:../php-token-stream:../phpunit-mock-objects/:../phpunit-selenium/:../phpunit-story/:/usr/local/lib/php' ../phpunit/phpunit.php $* 

Puede adaptar la ruta a su necesidad o si desea envolverlo en otro script también se puede usar PHPUnit un tanto mediante programación

require '/path/to/phpunit/PHPUnit/Autoload.php'; 
PHPUnit_TextUI_Command::main(); 

Esto supone que el éter tiene un archivo phpunit.xml.dist o que utiliza los parámetros cli adecuados cuando llama a su script de contenedor.


También puede utilizar los paquetes de pera y desempaquetar todas las versiones estables en lugar de trabajar desde el git checkout para ahorrar algo de espacio en disco y de recompra.El guión envoltorio y todo el trabajo ruta de inclusión es el mismo :)


relacionados SO preguntas:

PHP - Is there a portable version of PHPUnit?

PHPUNIT without installation

1

Hay una solución de gestión de paquetes consistentes para PHP - http://getComposer.org . Ahora también tiene un medio para instalar PHPunit en el estilo de compositor habitual, http://packagist.org/packages/phpunit/phpunit

Con el software instalado, colocará el script de línea de comandos phpunit en el directorio local 'bin /', para que pueda llamarlo, aunque Es probable que desee tener un script de shell que también establezca el archivo de configuración que usará.

La configuración habitual es un subdirectorio de pruebas/con la jerarquía de clases que extienden PHPunit que ejecutan las pruebas reales.

+0

... el compositor no es portátil. – Pacerier

Cuestiones relacionadas