2012-03-09 6 views
5

He navegado por problemas similares en SO, pero fue en vano. Estoy ejecutando PHP 5.3.6 y phpunit versión 3.6.10. Cuando se intenta ejecutar una prueba sencilla:PHPUnit falló la apertura del archivo requerido

require_once 'PHPUnit/Framework.php'; 

class UserTest extends PHPUnit_Framework_TestCase { 
} 

recibo el siguiente error:

PHP Fatal error: require_once(): Failed opening required 'PHPUnit/Framework.php' 
(include_path='.:/Users/username/pear/share/pear:/usr/lib/php/pear/:/Users/username/pear/share/pear/PHPUnit') in ... 

Al volver a instalar PHPUnit, no estoy seguro de si se duplica la ubicación de instalación, pero parece que cuando se ejecuta which phpunit, la ruta es: /usr/bin/phpunit. Sin embargo, parece que también está instalado en /Users/user/pear/bin/phpunit. He intentado actualizar todos los canales y volver a instalar PEAR y PHPUnit, pero el problema persiste. Me estoy ejecutando en OSX Lion. Cualquier ayuda sería muy apreciada.

+0

Hiciste un error tipográfico: ''PHPUit/Framework.php'' - Falta la' n'. – hakre

+0

Antes de volver a instalar PEAR, * leería * primero el mensaje de error. Te dice lo que salió mal. También te dije en el comentario anterior también. – hakre

+1

@hakre - lo siento, ese fue un error en escribir el error (en lugar de copiar y pegar). El error es que PHPUnit ya no requiere que requiera explícitamente la clase Framework. De alguna manera estaba leyendo documentación antigua, y estaba confundido de por qué no estaba funcionando. Gracias por tu ayuda. – naivedeveloper

Respuesta

15

Basta con retirar la línea

require_once 'PHPUnit/Framework.php'; 

y todo debería funcionar.

No necesita include/require nada relacionado con PHPUnit desde (al menos) PHPUnit 3.6 y no puede incluir ese archivo porque ya no existe en la distribución.

El corredor PHPUnit se hará cargo de bootstrapping todo lo que se necesita por PHPUnit :)

+2

Gracias, eso es lo que estoy viendo ahora. De alguna manera, aparentemente, tropecé con alguna documentación antigua o algo en el sitio PHPUnit, porque requería ese archivo. Gracias por tu ayuda. – naivedeveloper

+0

Hahahahaa. Es realmente una gran respuesta. Después de pasar una hora para solucionar este problema =) +1 =)) –

1

Como otros señalaron, Framework.php no se requiere más.

Pero en cualquier caso, si ya tiene demasiados archivos de prueba escritos y tiene la instrucción include, entonces solucionarlos será una tarea engorrosa. Cuál fue el caso que tuve que enfrentar.

Si se necesita una solución rápida, cree un archivo Framework.php vacío. Eso resolverá el problema. Crea un archivo vacío llamado Framework.php en tu directorio PHPUnit. (p. ej .: en: /usr/share/php/PHPUnit/Framework.php).

sudo touch /usr/share/php/PHPUnit/Framework.php

Cuestiones relacionadas