Pregunta

Me preguntaba si alguien que tenga experiencia en ambos temas puede arrojar algo de luz sobre el tema. significativo diferencia entre los dos si la hay?

¿Alguna fortaleza específica de cada uno que lo haga adecuado para algún caso específico?

¿Fue útil?

Solución

Esta pregunta está bastante anticuada, pero como todavía recibe tráfico y respuestas, creo que expreso mi punto aquí nuevamente, aun así ya lo hice en algunas otras preguntas (más nuevas).

Soy en serio en serio desconcertado que SimpleTest aún se considera una alternativa a phpunit.Tal vez estoy mal informado pero por lo que he visto:

  • PHPUnit es el estándar;la mayoría de los frameworks lo usan (como Zend Framework (1 y 2), Cake, Agavi, incluso Symfony está eliminando su propio Framework en Symfony 2 para phpunit).
  • PHPUnit está integrado en todos los IDE de PHP (Eclipse, Netbeans, Zend Stuide, PHPStorm) y funciona muy bien.
  • Simpletest tiene una extensión eclipse para PHP 5.1 (a.k.a.viejo) y nada más.
  • PHPUnit funciona bien con todos los servidores de integración continua, ya que genera todos los archivos de registro estándar para la cobertura del código y los informes de prueba.
  • Simpletest no lo hace.Si bien esto no es un gran problema para empezar, te afectará mucho una vez que dejes de "simplemente probar" y comiences a desarrollar software (Sí, esa afirmación es provocativa :) No te lo tomes demasiado en serio).
  • PHPUnit se mantiene activamente, es estable y funciona muy bien para cada base de código, cada escenario y cada forma en que desee escribir sus pruebas.
  • (Subjetivo) PHPUnit proporciona mucho mejor informes de cobertura de código que más simple
  • Con PHPUnit también obtienes estos informes dentro de tu IDE (netbeans, eclipse, ...)
  • También hay un par de sugerencias para un web interface to phpunit tests.

Todavía tengo que ver algún argumento a favor de SimpleTest.No es ni siquiera más sencillo de instalar ya que PHPUnit está disponible a través de Pear:

pear channel-discover pear.phpunit.de
pear install phpunit/PHPUnit

y la "primera prueba" se ve más o menos igual.

A partir de PHPUnit 3.7 es aún más fácil de instalar simplemente usando el PHAR Archive

wget http://pear.phpunit.de/get/phpunit.phar
chmod +x phpunit-3.7.6.phar

o para windows solo descargando el phar y corriendo:

php phpunit-.phar

o cuando se utiliza el instalación de compositor compatible maneras como

"require-dev": {
    "phpunit/phpunit": "3.7.*"
}

a tu compositor.json.


Para todo lo que quieras probar, PHPUnit tendrá una solución y podrás encontrar ayuda prácticamente en cualquier lugar (SO, canal irc #phpunit en freenode, prácticamente todos los desarrolladores de php;))

Por favor corríjanme si dije algo mal o si olvidé algo :)

Descripción general de las herramientas de prueba de PHP

Video: http://conference.phpnw.org.uk/phpnw11/schedule/sebastian-bergmann/

Diapositivas: http://www.slideshare.net/sebastian_bergmann/the-php-testers-toolbox-osi-days-2011

Menciona cosas como átomo que se llama a sí mismo:"¡Un marco de prueba unitario simple, moderno e intuitivo para PHP!"


La divulgación completa

Originalmente escribí esta respuesta en enero.2011 donde no tenía afiliación con ningún proyecto de prueba PHP.Desde entonces me convertí en colaborador de PHPUnit.

Otros consejos

Ahora prefiero PHPUnit, pero cuando comencé usé SimpleTest porque no siempre tuve acceso a la línea de comando.SimpleTest es bueno, pero en mi opinión, lo único que realmente tiene sobre PHPUnit es el corredor web.

Las razones por las que me gusta PHPUnit son que se integra con otras herramientas de desarrollo PHP como phing (al igual que SimpleTest), phpBajoControl, y Xinc.A partir de la versión 3.0 se ha burlado soporte, se está desarrollando activamente y la documentación es excelente.

Realmente, la única manera de responder esta pregunta es probar ambos por un tiempo y ver cuál se adapta mejor a su estilo.

EDITAR:Phing ahora también se integra con SimpleTest.

  • NO pude entender cómo descargar e instalar PHPUnit.
  • Sin embargo, pude entender fácilmente cómo instalar SimpleTest.

    (Hasta donde puedo recordar las instrucciones para Unidad PHP dijo algo como "Instalarlo a través de Pear y no daremos ninguna instrucción sobre cómo hacerlo de otra manera") Ver:

  • http://www.phpunit.de/manual/current/en/installation.html

Para Prueba simple, simplemente descárgalo y apúntalo desde tu código.

Entonces Simpletest ganó para mí.

Baphled tiene un buen artículo sobre SimpleTest frente a PHPUnit3.

La mitad de los puntos mencionados en la respuesta aceptada simplemente no son ciertos:

Prueba simple tiene

  • la configuración más sencilla (extraer a una carpeta, incluirla y ejecutarla)
  • simplemente revisa la carpeta en el control de versiones (intenta hacerlo con phpunit hoy en día :))
  • menos dependencias y muchas extensiones (webtester, formtester, auth)
  • un buen reportero de cobertura de código, que es fácil de ampliar (puntos, nombres de funciones, colores)
  • un resumen de cobertura de código (finalmente llegó a PHPUnit 4.x)
  • un corredor web decente y un corredor web ajax, con grupos y ejecuciones de un solo archivo
  • herramienta de diferenciación aún mejor (sin espacios en blanco ni problemas de nueva línea)
  • un adaptador/contenedor para ejecutar SimpleTests mediante phpUnit y viceversa
  • compatibilidad PHP5.4+

La baja:

  • no estándar de la industria (PHPUnit)
  • no mantenido activamente

Descubrí que SimpleTest era incluso más fácil de configurar que PHPUnit.Simplemente extráelo y listo.Un beneficio de esto es si está trabajando en más de una máquina, ya que puede almacenar todo el marco de prueba de la misma manera que su código fuente y, por lo tanto, saber que está utilizando el mismo código de marco.Especialmente si lo modificas de alguna manera.

Entonces, diría que una de las fortalezas de SimpleTest es que es muy liviano y portátil.

SimpleTest también viene con una GUI HTML muy simple, que es bastante fácil de ampliar si así lo deseas.Hasta donde yo sé, PHPUnit no incluye una GUI HTML, pero hay GUI disponibles para descargar, como Fresco.

Bueno, creé un ejecutor de casos de prueba de UI basado en web phpUnit y lo puse a disposición en sourceforge.Utiliza ajax y también tiene una interfaz bastante interesante. Si quieres probarlo, compruébalo en Sourceforge.El nombre del proyecto es phpunitwebui y el sitio web es http://phpunitwebui.sourceforge.net/

Como se ha señalado, es principalmente una elección de preferencia, ya que ambos ejecutarán las pruebas que usted escriba e informarán los resultados.

La interfaz de usuario web más simple es muy útil, pero a veces también puede resultar engorrosa.En mi proyecto actual, habría tenido que trabajar más en un sistema para que mi aplicación (una API) funcionara con la interfaz web (configurar Apache correctamente, copiar archivos a la raíz public_html, etc.) de lo que hubiera sido para simplemente ejecutar phpunit desde el espacio de trabajo de eclipse.Por eso elijo PHPUnit.Además, el uso de PEAR fue una gran ventaja ya que no es necesario realizar un seguimiento manual de las actualizaciones.Simplemente ejecuta pear upgrade de vez en cuando y PHPUnit se mantendrá actualizado.

No he revisado Simple Test por un tiempo, la última vez tenía un complemento de eclipse, que es un factor importante para mí, pero no se ha actualizado en mucho tiempo.Sebastian Bergmann todavía está trabajando muy activamente en PHPUnit, pero todavía le falta un buen complemento para eclipse, pero está incluido para el nuevo Zend Studio.

Esta pregunta es antigua, pero quiero agregar mi experiencia:PHPUnit parece ser el estándar ahora, pero si trabaja con un sistema heredado que usa muchísimas variables globales, puede quedarse atascado desde el principio.Parece que no hay una buena manera de hacer pruebas con variables globales en PHPUnit, parece que tienes que configurar tus variables a través de $GLOBALS, lo cual NO ES BUENO si tienes toneladas de archivos configurando variables globales en todas partes.Bueno, algunos pueden decir que el problema está en el sistema heredado, pero eso no significa que no podamos realizar pruebas en dicho sistema.Con SimpleTest esto es sencillo.Supongo que si PHPUnit nos permite incluir un archivo globalmente, no dentro del alcance de ninguna clase/función, entonces tampoco sería un gran problema.

Otra solución prometedora es http://www.enhance-php.com, se ve bien :)

Esto es desde el punto de vista de un desarrollador PHP muy informal:

Me tomó dos días comprender PHPUnit, principalmente intentando depurar en Eclipse, pero finalmente me di por vencido.

Me tomó dos horas configurar Simpletest, incluida la depuración en Eclipse.

Tal vez encuentre las deficiencias de Simpletest en el futuro, pero hasta ahora hace bien lo que necesito:TestClasses, objetos simulados, depuración de código de prueba e interfaz web para obtener una instantánea rápida de la situación.

De nuevo: Esto desde el punto de vista de un usuario PHP muy casual. (ni siquiera desarrollador :-)

cuando hay miles de funciones para probar de una vez, phpunit es el camino a seguir, las pruebas simples se quedan cortas ya que están basadas en la web.

Todavía estoy usando una web simple para pruebas a pequeña escala.

Pero ambos son buenos

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