No está proporcionando ninguna información en absoluto.
Pekka
Ejecute sus pruebas a través de la línea de comando phpunit. Carga las clases necesarias.
Halfstop
También puede usar la respuesta de la siguiente respuesta stackoverflow.com/questions/42811164/… para mantener su código compatible con PHPUnit 6 y versiones anteriores.
Robson
Respuestas:
73
La documentación de PHPUnit dice que solía decir para incluir / requerir PHPUnit / Framework.php, de la siguiente manera:
require_once ('PHPUnit/Framework/TestCase.php');
ACTUALIZAR
A partir de PHPUnit 3.5, hay una clase de autocargador integrada que se encargará de esto por usted:
Para aquellos que llegan aquí después de actualizar phpunit a la versión 6 o superior lanzada el 2017-02-03 (por ejemplo, con el compositor), es posible que obtenga este error porque el código phpunit ahora tiene un espacio de nombres (consulte el registro de cambios ).
Tendrá que refactorizar cosas como \PHPUnit_Framework_TestCasea\PHPUnit\Framework\TestCase
Gracias, tuve este problema debido a que Travis CI usaba la versión PHPUnit más reciente en sus compilaciones PHP 7. Mi solución fue descargar manualmente un viejo phar y usarlo en su lugar.
Gracias amablemente, buen señor. De hecho, estoy llegando aquí después de actualizar a la versión 6.
h4ckNinja
Estaba realmente molesto porque mis pruebas de repente dejaron de funcionar. Hice una actualización del compositor y actualicé mi PHPunit a 6.1. Gracias.
Jed Lynch
38
Para una versión superior de phpunit como 6.4
Debe usar el espacio de nombres PHPUnit \ Framework \ TestCase
use TestCase en su lugar PHPUnit_Framework_TestCase
// use the following namespaceusePHPUnit\Framework\TestCase;// extend using TestCase instead PHPUnit_Framework_TestCaseclassSampleTestextendsTestCase{}
Excelente, esto funcionó para mí, ya que estaba siguiendo un antiguo tutorial
acabas de copiar la respuesta de shadi
Adam
@ Adam, ¿quién es Shadi?
Jijesh Cherrai
No se tal cosa.
Obtuve el
13
Puede recibir este error porque espació el nombre del archivo. Si es así, deberá especificar que PHPUnit_Framework_TestCase está en el espacio de nombres global precediéndolo con una barra diagonal inversa:
Sí, si hizo esto: class YourNiceTest extends PHPUnit_Framework_TestCasesimplemente agregue el \ delante de la clase extendida, como en class YourNiceTest extends \PHPUnit_Framework_TestCase- Esto funcionó para mí, usando Symfony 2.8e incluyendo el phpunitarchivo del compositor descargado como una dependencia local con"phpunit/phpunit": "^4.8"
Xavi Montero
12
Estaba ejecutando pruebas PHPUnit en PHP5, y luego, también necesitaba admitir PHP7. Esto es lo que hice:
En composer.json:
"phpunit/phpunit":"~4.8|~5.7"
En mi archivo de arranque PHPUnit (en mi caso /tests/bootstrap.php):
// PHPUnit 6 introduced a breaking change that// removed PHPUnit_Framework_TestCase as a base class,// and replaced it with \PHPUnit\Framework\TestCaseif(!class_exists('\PHPUnit_Framework_TestCase')&& class_exists('\PHPUnit\Framework\TestCase'))
class_alias('\PHPUnit\Framework\TestCase','\PHPUnit_Framework_TestCase');
En otras palabras, esto funcionará para las pruebas escritas originalmente para PHPUnit 4 o 5, pero luego también tenía que funcionar en PHPUnit 6.
esta solución es importante si no desea tocar el código Civi \ Test pero necesita compatibilidad con la última prueba de unidad de php basada en el espacio de nombres
Configuración del conjunto de pruebas: demosuite.xml. demoes el directorio que contiene todas las pruebas. Los archivos de prueba deben nombrarse como *_test.php( suffix).
Esto ya no funciona porque las últimas PHPUnit ya no admiten nombres de clase antiguos como PHPUnit_Framework_TestCase. Realmente tienes que usar... extends PHPUnit\Framework\TestCase
Mikko Rantalainen
Simplemente decir que tuve que primero mv phpunit /usr/local/bin/phpunity después sudo chmod +x /usr/local/bin/phpunit. Establecer el archivo como ejecutable antes de moverlo nunca funcionó en Vagrant Ubuntu. No tengo idea de por qué ... Pero en caso de que alguien esté luchando con esto, espero que esto ayude.
George Mylonas
4
Suposición:
Phpunit (3.7) está disponible en el entorno de la consola.
Acción:
Ingrese el siguiente comando en la consola:
SHELL> phpunit "{{PATH TO THE FILE}}"
Comentarios:
No necesita incluir nada en las nuevas versiones de PHPUnit a menos que no quiera ejecutarlo en la consola. Por ejemplo, ejecutar pruebas en el navegador.
Si tiene Centos u otra distribución de Linux, debe instalar el paquete phpunit, lo hice con yum install phpunit y funcionó. Tal vez pueda tener que agregar un repositorio, pero creo que tiene que funcionar sin problemas con los predeterminados (tengo CentOS 7)
Es muy posible que esté ejecutando pruebas principales de WordPress y que haya actualizado recientemente su PhpUnit a la versión 6. Si ese es el caso, entonces el cambio reciente al espacio de nombres en PhpUnit habrá roto su código.
Afortunadamente, hay un parche para las pruebas principales en https://core.trac.wordpress.org/changeset/40547 que solucionará el problema. También incluye cambios en travis.yml, que puede que no tenga en su configuración; Si ese es el caso, deberá editar el archivo .diff para ignorar el parche de Travis.
Edite el archivo de parche para eliminar la parte de Travis del parche si no lo necesita. Eliminar desde la parte superior del archivo hasta justo encima de esta línea:
Guarde el diff en el directorio arriba de su directorio / include /, en mi caso este fue el directorio de Wordpress en sí
Use la herramienta de parche Unix para parchear los archivos. También deberá quitar las primeras barras para pasar de una estructura de directorio absoluta a una relativa. Como puede ver en el punto 3 anterior, hay cinco barras antes del directorio de inclusión, del cual se eliminará un indicador -p5.
$ cd [WORDPRESS DIRECTORY]
$ patch -p5 < changeset_40547.diff
Después de hacer esto, mis pruebas volvieron a funcionar correctamente.
AVISO: Comando php bin/console generate:doctrine:crudtambién crean TestControlleren src/Testslo que puede tirar de error cuando intentaba iniciar el servidor si no se tiene UnitTests. Elimina el archivo ¡arréglalo!
Respuestas:
La documentación de PHPUnit
dice quesolía decir para incluir / requerir PHPUnit / Framework.php, de la siguiente manera:ACTUALIZAR
A partir de PHPUnit 3.5, hay una clase de autocargador integrada que se encargará de esto por usted:
¡Gracias a Phoenix por señalar esto!
fuente
require_once 'PHPUnit/Autoload.php'
PHPUnit/Autoload.php
yPHPUnit/Framework/TestCase.php
mi carpeta es comoPHPUnit/Framework/MockObject
PHP Fatal error: require_once(): Failed opening required 'PHPUnit/Autoload.php'
Para aquellos que llegan aquí después de actualizar phpunit a la versión 6 o superior lanzada el 2017-02-03 (por ejemplo, con el compositor), es posible que obtenga este error porque el código phpunit ahora tiene un espacio de nombres (consulte el registro de cambios ).
Tendrá que refactorizar cosas como
\PHPUnit_Framework_TestCase
a\PHPUnit\Framework\TestCase
fuente
Para una versión superior de phpunit como 6.4 Debe usar el espacio de nombres PHPUnit \ Framework \ TestCase
use TestCase en su lugar PHPUnit_Framework_TestCase
fuente
Puede recibir este error porque espació el nombre del archivo. Si es así, deberá especificar que PHPUnit_Framework_TestCase está en el espacio de nombres global precediéndolo con una barra diagonal inversa:
Envié un PR crudo para comenzar una conversación para corregir la documentación .
fuente
class YourNiceTest extends PHPUnit_Framework_TestCase
simplemente agregue el \ delante de la clase extendida, como enclass YourNiceTest extends \PHPUnit_Framework_TestCase
- Esto funcionó para mí, usandoSymfony 2.8
e incluyendo elphpunit
archivo del compositor descargado como una dependencia local con"phpunit/phpunit": "^4.8"
Estaba ejecutando pruebas PHPUnit en PHP5, y luego, también necesitaba admitir PHP7. Esto es lo que hice:
En composer.json:
En mi archivo de arranque PHPUnit (en mi caso
/tests/bootstrap.php
):En otras palabras, esto funcionará para las pruebas escritas originalmente para PHPUnit 4 o 5, pero luego también tenía que funcionar en PHPUnit 6.
fuente
Simplemente puede instalar PHPUnit para ejecutar comandos ( https://github.com/sebastianbergmann/phpunit/#php-archive-phar ):
Ejecutar prueba única
Y luego ejecuta la prueba PHPunit:
El contenido del archivo de prueba es el siguiente:
Ejecutar suite de prueba
Configuración del conjunto de pruebas: demosuite.xml.
demo
es el directorio que contiene todas las pruebas. Los archivos de prueba deben nombrarse como*_test.php
(suffix
).El conjunto de pruebas se ejecuta con los siguientes comandos:
fuente
PHPUnit_Framework_TestCase
. Realmente tienes que usar... extends PHPUnit\Framework\TestCase
mv phpunit /usr/local/bin/phpunit
y despuéssudo chmod +x /usr/local/bin/phpunit
. Establecer el archivo como ejecutable antes de moverlo nunca funcionó en Vagrant Ubuntu. No tengo idea de por qué ... Pero en caso de que alguien esté luchando con esto, espero que esto ayude.Suposición:
Acción:
Ingrese el siguiente comando en la consola:
Comentarios:
No necesita incluir nada en las nuevas versiones de PHPUnit a menos que no quiera ejecutarlo en la consola. Por ejemplo, ejecutar pruebas en el navegador.
fuente
Uso ZF2 y trabajo para mí cuando reemplacé 'PHPUnit_Framework_TestCase' por '\ PHPUnit \ Framework \ TestCase'
fuente
Si tiene Centos u otra distribución de Linux, debe instalar el paquete phpunit, lo hice con yum install phpunit y funcionó. Tal vez pueda tener que agregar un repositorio, pero creo que tiene que funcionar sin problemas con los predeterminados (tengo CentOS 7)
fuente
Es muy posible que esté ejecutando pruebas principales de WordPress y que haya actualizado recientemente su PhpUnit a la versión 6. Si ese es el caso, entonces el cambio reciente al espacio de nombres en PhpUnit habrá roto su código.
Afortunadamente, hay un parche para las pruebas principales en https://core.trac.wordpress.org/changeset/40547 que solucionará el problema. También incluye cambios en travis.yml, que puede que no tenga en su configuración; Si ese es el caso, deberá editar el archivo .diff para ignorar el parche de Travis.
Edite el archivo de parche para eliminar la parte de Travis del parche si no lo necesita. Eliminar desde la parte superior del archivo hasta justo encima de esta línea:
Guarde el diff en el directorio arriba de su directorio / include /, en mi caso este fue el directorio de Wordpress en sí
Use la herramienta de parche Unix para parchear los archivos. También deberá quitar las primeras barras para pasar de una estructura de directorio absoluta a una relativa. Como puede ver en el punto 3 anterior, hay cinco barras antes del directorio de inclusión, del cual se eliminará un indicador -p5.
Después de hacer esto, mis pruebas volvieron a funcionar correctamente.
fuente
AVISO: Comando
php bin/console generate:doctrine:crud
también creanTestController
ensrc/Tests
lo que puede tirar de error cuando intentaba iniciar el servidor si no se tieneUnitTests
. Elimina el archivo ¡arréglalo!fuente
Para mí fue porque corrí
en vez de
cuando ya tenía un
phpunit.xml
archivo configurado en el directorio de trabajo.fuente
Estoy usando php 5.6 en la ventana 10 con la versión zend 1.12 para mí agregando
antes de
trabajó. Necesitamos agregar esta declaración anterior en el archivo ControllerTestCase.php
fuente