2011-11-15 16 views
9

he instalado PHPUnit y mi clase de prueba es el siguiente:tema determinación Clase PHP para las clases en el mismo directorio al ejecutar los casos de prueba PHPUnit

require_once 'PHPUnit/Framework/TestCase.php'; 

class Test extends PHPUnit_Framework_TestCase {...} 

Cuando ejecuto el script PHP en Eclipse, me sale el siguiente error :

Fatal error: Class 'PHPUnit_Framework_Assert' not found in .../PEAR/PHPUnit/Framework/TestCase.php on line 99

así que creé una prueba de carga de clases PHP en general:

  • A.php y b.php en el mismo directorio

A.php:

class AA {} 

b.php:

class BB extends AA {} 
new BB(); 

Al ejecutar el script PHP b.php consigo el mismo error:

Fatal error: Class 'AA' not found in .../B.php on line 2

Hay debe ser una opción para que PHP pueda resolver estas clases; de lo contrario, PHPUnit no podría funcionar. ¿Algunas ideas?

Gracias.

+2

¿cómo ejecutar las pruebas? PHPUnit es una herramienta de línea de comandos. Cuando lo usa así, instalará su propio autocargador, por lo que generalmente no tiene que exigir nada mientras PEAR esté en su include_path. Cuando lo ejecute desde Eclipse, asegúrese de ejecutar "Prueba de PHPUnit" y no solo como un script. – Gordon

+0

Sí, gracias. Me di cuenta de eso un rato después de publicar mi pregunta aquí. :) – user498380

+0

quiero que lo publique como respuesta para que pueda aceptarlo como la solución? – Gordon

Respuesta

6

Usted no debe ser carga/requerir

require_once 'PHPUnit/Framework/TestCase.php'; 

en sus pruebas en absoluto. El corredor de phpunit normal debería ser capaz de resolverlo.

Por lo general idus cuidado debe sobre la configuración de PHPUnit correctamente (o invocar correctamente), pero si eso no funciona a cabo requiere

require_once 'PHPUnit/Autoload.php'; 

Que debe hacer el truco a continuación, ya que esto es cuál es necesario para hacer PHPUnit funciona

+0

Gracias. Existe una extensión PHPUnit para PTI, pero esta no funciona en mi Eclipse por alguna razón. Sin embargo, solo usaré la línea de comando phpunit. – user498380

+0

Quizás eso tiene que ver con PHPUnit 3.6. Por lo que he visto, PTI suele funcionar bastante bien :) --- De todos modos: si su problema está resuelto, marque una de las respuestas como "aceptada" (marque el texto con una de las respuestas) para informarle a la gente que su problema está resuelto y que pueden ver otra pregunta. – edorian

+0

Creo que una de las razones para esto es el hecho de que uno de los primeros ejercicios en el manual de PHPUnit le indica que haga eso. Luego se encuentra con este error y termina en la página de desbordamiento de la pila (así es como lo encontré por cierto). –

0

Me encontré con este problema al integrar con NetBeans. La solución para mí fue cargar un archivo bootstrap.php, que incluiría todas las dependencias necesarias mientras dejaba intactos mis archivos de clase.

Oops: acaba de darse cuenta de que está utilizando Eclipse. Debería ser bastante similar. Es probable que el script de inclusión sea relativo al directorio de trabajo de Eclipse (o a algún directorio que no sea donde normalmente se ejecuta la aplicación). Pero eso es una puñalada en la oscuridad, sin ser demasiado familiarizado con Eclipse mismo ...

Cuestiones relacionadas