2009-06-08 17 views
31

¿Hay alguna integración de PHPUnit con Eclipse PDT?Eclipse PDT y PHPUnit?

Si no, ¿hay algún plan para hacerlo?

+1

¿Puedo sugerir la apertura de un informe de error? –

Respuesta

7

Es posible integrar PHPUnit con PDT de una manera sencilla (estas configuraciones no son totalmente genéricas, pero deberían ser un buen punto de partida).

  1. Seleccione el Ejecutar> Herramientas externas> configuraciones de herramientas externas
  2. Crear un nuevo programa
  3. establecer la ubicación para apuntar a su ejecutable (/ usr/bin/PHPUnit en Linux)
  4. Establezca el directorio de trabajo para usar la variable $ {workspace_loc}
  5. Establezca los argumentos en $ {resource_path}

Ahora seleccione Ejecutar> Herramientas externas> PHPUnit para ejecutar el archivo de prueba seleccionado. Esto simplemente ejecuta phpunit y envía STDOUT al terminal Eclipse. Simple pero efectivo

Posteriormente, puede utilizar el icono con una flecha verde y una caja de herramientas roja para ejecutar PHPUnit sin tener que navegar por los menús.

+0

¡Gracias por el consejo! Lo hice de una manera un poco diferente: Directorio de trabajo = "$ {workspace_loc} \ project-name"; Arguments = "carpeta de pruebas". También tuve que agregar una variable de entorno (pestaña "Entorno"): PHPBIN = "C: \ ruta \ a \ php.exe" – Michael

+0

para depurar en PHPUnit, configurar xDebug en php.ini y establecer la variable de entorno XDEBUG_CONFIG como idekey = 123456 – Raaghu

5

(descargo de responsabilidad: no soy absolutamente el desarrollador del proyecto del que hablo aquí, solo un usuario ^^ (Y como no conozco JAVA, sería bastante difícil para mí ayudar contribuyendo código ... Así que esta es mi manera de ayudar :-)))

Hay trabajan actualmente en curso en ese lado: hace unas semanas (tal vez no más de dos semanas), el primero de una proyecto de integración de PHPUnit en Eclipse ha sido puesto en libertad:

Lo que hace:

  • permite poner en marcha pruebas PHPUnit de Eclipse
  • y conseguir algo de "pista visual" de lo que está pasando
  • que es, de alguna manera, mejor/más fácil de usar que el enfoque propuesto por Sebastian en la wiki de phpunit.

Para algún tipo de pantalla, ver http://code.google.com/p/phpunit4eclipse/wiki/j2phpUnitWrapper


Por desgracia, no es desarrollado como un plugin de Eclipse (¿todavía?):

  • se trata de un proyecto Java separada, que inicia phpunit
    • o algo así, por lo que yo puede decir ...
  • que significa:
    • no tan bien integrado en Eclipse, ya que podría
    • Lo más importante es cuando se hace doble clic en una clase de prueba/método, que doesn 't llegar a esa clase/método (porque las pruebas' resultados se muestran por el proyecto JAVA, y la clase de prueba/método es en otro, PHP, proyecto)
  • todavía es muy difícil de instalar:
    • no he arreglado para instalarlo en Eclipse PDT
    • he tenido que instalar "IDE Eclipse para desarrolladores de Java", y, a continuación, instalar el plugin PDT en éste (que funciona bien, pero no es "fácil")

de todos modos, este es un trabajo en progreso, el proyecto está todavía muy joven, y es sólo un primer paso ...


un grupo de Google ha sido creado para ese proyecto hace poco tiempo: http://groups.google.com/group/phpunit4eclipse-user/

Es actualmente vacío , pero estoy seguro de que sería útil que algunas personas se unieron, dieron sus pensamientos, y por qué no, ¡ayudado!

+0

Considerando que el autor de esta pregunta no ha estado en SO durante un mes y medio, es probable que no obtenga esta respuesta ... Pero, espeluznantemente, otras personas lo verán, y llamará la atención sobre el proyecto^^ –

-1

Tiene e integración de PHPUnit en la parte superior de PDT en Zend Studio. Hay una edición de CE también.

23

Hemos desarrollado un plugin de Eclipse llamado MakeGood que integra PHPUnit y más frameworks de prueba con Eclipse PDT.

MakeGood es un corredor de pruebas continuo para ejecutar pruebas unitarias en Eclipse PDT.

MakeGood proporciona comentarios rápidos por flujos de trabajo automatizados para ejecutar pruebas, rastrear fallas y errores y errores fatales. Esto ayudará a los desarrolladores a hacer Test Driven Development (TDD) y Prueba continua.

Para obtener más información, visite nuestro sitio web en: https://github.com/piece/makegood/wiki

A screenshot of MakeGood

44

Ver Eclipse Plugin PHP Tool Integration (PTI) que proporciona integración de las siguientes características para Eclipse:

  • PHP_CodeSniffer
  • PHPUnit
  • PHP Depend
  • PHP Copiar/Pegar detector

Actualizar sitios (Ayuda - Instalación de Software - Añadir ...):

Última versión estable: http://www.phpsrc.org/eclipse/pti/

Versión de desarrollo: http://www.phpsrc.org/eclipse/pti-dev/

+0

Guau, eso fue fácil. Gracias por esto. – grefly

+2

desafortunadamente, no pude encontrar una forma de ejecutar las pruebas de la unidad PHP. ¿Algún consejo? – kellogs

+0

¡Bien! Lo he instalado ... ¿Y ahora qué? –

0

También ejecuto PHPUnit como una herramienta externa como la propuesta por DavidWinterbottom.

Una cosa que también agrego dependiendo del tipo de proyecto va a la pestaña Opciones de compilación y seleccionando las primeras opciones después de: "ejecutar el constructor:". Esto activa las pruebas unitarias cada vez que guarda un archivo. Esto es genial para obtener un ciclo de realimentación rojo-verde-refactor muy rápido.

He publicado los pasos enteros con capturas de pantalla aquí: http://nicholaslemay.blogspot.com/2010/02/using-eclipse-phpunit-as-automatic.html

0

Uso de PHPUnit de hormiga es también posible, y la hormiga es soportado nativamente por Eclipse. Simple tiene un nuevo <exec executable="phpunit"> en un objetivo y voilà, puede usar phpunit en eclipse, a través de hormiga.

2

Hay un complemento en Eclipse Marketpalce que ahora se llama Integración de herramienta PHP de PTI.

http://www.phpsrc.org/

0

Tras la respuesta @DavidWinterbottom (Eclipse Indigo):

  1. Seleccione la Ejecutar -> Herramientas externas -> Herramientas configuraciones externas

  2. Crear un nuevo programa

  3. Establezca la ubicación para que apunte a su ejecutable (/usr/bin/phpunit en Linux, o la ruta a phpunit.bat en Windows)

  4. Establecer los argumentos de ruta absoluta a la carpeta phpunit (C:\phpproject\testunit)

no pude conseguir que el uso de ${project_loc} o ${project_path} .

3

Definitivamente hay integración para Eclipse PDT y PHPUnit.ambos PHPSRC y MakeGood funcionan bien, aunque soy fanático de MakeGood para phpunit phpsrc viene con otros extras como CodeSniffer. He ramificado un PHPUnit CodeSniffer Standard on github que valida la calidad de las pruebas de phpunit que puedo ejecutar con el plugin CodeSniffer de Eclipse PHP Tools. Esto tiene actualizaciones para el nuevo paquete phpunit como setUp y tearDown.

se asegura de que haya aserciones en las pruebas. A algunos desarrolladores les gusta omitir cuando intentan cumplir las métricas de cobertura de código no assertions in test

Se asegura de que no haya más de 1 afirmación por prueba. A best practice too many tests

La configuración de PDT en Eclipse no es sencilla.

Hay muchos pequeños detalles involucrados Aquí están los pasos de alto nivel.

pear clear-cache 
pear upgrade pear 
pear update-channels 
pear upgrade --alldeps -f 
pear channel-discover pear.phpunit.de 
pear channel-discover pear.symfony-project.com 
pear channel-discover components.ez.no 
pear install --alldeps phpunit/PHPUnit 

[Xdebug]

zend_extension = "C:\xampp\php\ext\php_xdebug-2.2.1-5.4-vc9.dll" 
xdebug.remote_enable=1 
xdebug.remote_handler="dbgp" 
xdebug.remote_mode="req" 
xdebug.remote_port=9000  
xdebug.remote_host = "127.0.0.1" 
xdebug.remote_log="C:\xampp\php\logs" 

Me tomó cerca de 3 días para llegar, finalmente, todo bien por lo que poner juntos un video tutorial

Buena suerte!

0

Por todo ello utilizando el compositor en UNIX como la máquina (Eclipse y Xdebug instalado):

cd <project-root> 
ln -s vendor/bin/phpunit phpunit.php 

abierto Eclipse, configuración de ejecución/depuración abrir, crear una nueva configuración de depuración, y seleccione phpunit.php como archivo de depurar. Continúe el resto de la configuración como de costumbre, establezca puntos de interrupción, eso es todo.