Pregunta

Me gustaría empaquetar phpunit y varias otras dependencias de prueba en un PHAR y ponerlo en SVN. De esta manera, puedo ejecutar phpunit en cualquier máquina cliente sin necesidad de pera. Se puede hacer esto?

¿Fue útil?

Solución

Estado actual:

Trabajar en un phpunit.phar ha comenzado en el phpunit repo Pero el PHAR generado no es estable y no tiene una característica completa.

Si llega allí habrá lanzamientos oficiales


Respuesta original:

Si puedes, te daré 500 repeticiones, 100 dólares y mi primogénito ... bueno no ... solo los dos primeros.

Para ser serio:

He regañado al creador de Phpunit sobre este tema en al menos 3 conferencias ahora y bueno ... no parece que sea posible.

Hay un par de problemas con eso. En primer lugar, PHPUNIT genera nuevos procesos PHP para el aislamiento de la prueba. El problema con esto es que un PHAR no puede decir qué ejecutable de PHP lo llamó. Entonces, si inicia PHPUNIT con una versión compilada personalizada, utilizaría el PHP "predeterminado" instalado para generar las pruebas aisladas.

En segundo lugar, por lo que sé, y me han dicho que no es posible poner archivos estáticos como imágenes y CSS en un PHAR. Lo que hace que la generación de la cobertura del código sea mucho más difícil. Eso requeriría algo de trabajo en esa parte.

Hay otros problemas que no puedo recordar exactamente recordar que tiene que ver exactamente con XDebug que puede proporcionar cobertura de código para faros (y Phpunit depende de no generar exceso para su propio código y así) y otras cosas.

There once was a phar Pero por mi entendimiento, que simplemente no funciona con el estado actual de phpunit y nunca De Verdad funcionó por completo.


No digo que no se pueda hacer justo que varias personas ya hayan renunciado a crear un phpunit. Phar, incluido el tipo, cómo lo desarrolla. (Esa es solo mi impresión, por supuesto, no puedo hablar por Sebastian aquí y podría estar completamente equivocado, tome esto como un pequeño descargo de responsabilidad)

Poner phpunit en SVN

¡No tienes que construir un .phar para hacerlo!

Para mi empresa mantengo una versión SVND de PhPunit. No es la forma recomendada de usarlo, ¡pero funciona sin muchos problemas!

Siga el "using from a git checkout" Instrucciones en el sitio de PhPunit GitHub. Luego debe poner esos archivos en su PHP incluye ruta y funciona.

Mi sugerencia sería crear un phpunit personalizado.sh que modifique la ruta de inclusión y luego llame al original PhPunit.Sh transmitiendo todos los argumentos. Es un poco de trabajo, pero funciona bastante bien y es mucho más fácil que crear un archivo PHAR :)

Otros consejos

Desde el nueva página de phpunit:

Distribuimos un archivo PHP (PHAR) que contiene todo lo que necesita para usar PhPunit. Simplemente descargarlo desde aquí, hágalo ejecutable y póngalo en su ruta $, por ejemplo ......

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top