2012-01-18 7 views
5

Soy un nuevo usuario de PHPUnit y estoy convirtiendo nuestras pruebas existentes (afirmaciones) en el marco PHPUnit para proporcionar un entorno de prueba y una cobertura de código mejores. Sin embargo, necesito saber cómo intentar que PHPUnit funcione con nuestra estructura de código de prueba.Configuración de nombres de archivos para PHPUnit

Nuestros directorios de proyectos son similares a lo siguiente:
      CREDIT_CARD.class
Application1/- convención de nombres de clase para CREDIT_CARD
      CREDIT_CARD.class.test - Las pruebas automatizadas para CREDIT_CARD.class
      archivo.php - Aplicación del archivo
      File.php.test - Auto pruebas apareadas para archivo.php
      file2.php
      File2.php.test - pruebas automatizadas para file2.php

Application2/
      ANOTHER_CLASS.class
      ANOTHER_CLASS .class.test
      DifferentFile.php - Archivo de la aplicación
      DifferentFile.php.test - pruebas automatizadas para archivo.php

lib/
      Útil/
            SHARED_CLASS.class
            SHARED_CLASS. class.test
      VISUAL/
            VISUAL_TOOL.class
            VISUAL_TOOL.class.test

Necesito saber cómo configurar las pruebas PHPUnit para que pueda ejecutar las pruebas en lib/UTIL/.test (que carga el archivo de clase utilizando el método setUp()) luego el lib/VC/ .test, seguido (si tiene éxito) por las pruebas Application1 y Application2. Vi mención de un archivo PHPUnit_xml y un archivo bootstrap, pero no puedo encontrar una plantilla de referencia para ver si eso es lo que necesito. Cualquier ayuda sería apreciada.

Sé que la documentación se refiere a un test.php además de los nombres de los archivos, pero espero no tener que cambiar nuestra estructura y convenciones de nomenclatura ya que me gustaría poder ejecutar una mezcla de los archivos hasta que todos se convierten al marco PHPUnit.Cambiar los nombres provocará un cambio de procedimiento en nuestra empresa y capacitación para los desarrolladores, que estoy tratando de evitar.

Gracias de antemano por su asistencia.

+0

Así 'Filename.class.test' contiene una clase que amplía PHPUnit_Framework_TestCase? ¿Lo entendí bien? – edorian

+0

Sí. TEST_SOME_CLASS clase extiende PHPUnit_Framework_TestCase { protegida disposición de la función() { si require_once (substr (__ FILE__, 0, -5)) (class_exists ('SOME_CLASS')!); // tira '.test' extensión } \t testConstants de función pública() { \t \t $ this-> assertEquals (SOME_CLASS :: TYPE_1, 1); $ this-> assertEquals (SOME_CLASS :: TYPE_2, 2); \t} } –

Respuesta

7

¿Tienes archivos llamados Foo.class.test en lugar de PHPUnit por defecto FooTest.php?

Eso no debería ser un gran problema ya que PHPUnit le permite configurar qué sufijos de archivos se deben tratar como "pruebas". El Test.php es el predeterminado.

Tener un vistazo a la xml config part of the docs regard test organisation

Lo que queremos es:

<testsuites> 
    <testsuite name="Our new shiny phpunit test Suite"> 
     <directory suffix=".test">./sourceFolder</directory> 
    </testsuite> 
    </testsuites> 

PHPUnit entonces escanear a través de la carpeta de origen que incluye todos los archivos que terminan en .class.test y dejando los otros archivos como es.

+0

Como hay algunos archivos de prueba que no son de clase, puede que necesite ser 'sufijo =". Test "'. –

+0

Ah gracias @David. Buen punto – edorian

+0

Gracias por las sugerencias. ¿Hay alguna posibilidad de que se publique un archivo de muestra con algunas de estas sugerencias, ya que tengo diferentes archivos y poca experiencia con PHPUnit? Estoy mirando la referencia, y principalmente estoy buscando un archivo base para comenzar con la prueba y el error y verificar los entendimientos con el documento. –

Cuestiones relacionadas