reconoce - phpunit laravel
PHPUnit-''No se ejecutaron pruebas'' cuando se usa el archivo de configuraciĆ³n (16)
¿Ha agregado una suite de prueba a su archivo phpunit.xml?
<phpunit>
<testsuite name="app1" >
<directory>./</directory>
</testsuite>
</phpunit>
Puede agregar varios directorios allí.
El problema
Para mejorar mi calidad de código, he decidido tratar de aprender cómo probar mi código usando Unit Testing en lugar de mis soluciones de prueba mediocres en el mejor de los casos.
Decidí instalar PHPUnit usando Composer para una biblioteca personal que me permite lograr funciones comunes de base de datos. Al principio no tenía un archivo de configuración para PHPUnit y cuando ejecuté comandos como:
$ phpunit tests/GeneralStringFunctions/GeneralStringFunctionsTest
Tenga en cuenta que este es un comando de terminal, por lo que no
.php
extensión
.php
.
El GeneralStringFunctionsTest mencionado anteriormente es en realidad un archivo
GeneralStringFunctionsTest.php
.
El resultado es lo que esperaba:
Tiempo: 31 ms, Memoria: 2.75Mb
OK (1 prueba, 1 afirmación)
Luego intenté usar un archivo de configuración para cargar automáticamente el conjunto de pruebas en lugar de tener que escribir manualmente el archivo cada vez.
phpunit.xml
un archivo llamado
phpunit.xml
en mi directorio raíz e
phpunit.xml
lo siguiente en el archivo:
http://pastebin.com/0j0L4WBD
:
<?xml version = "1.0" encoding="UTF-8" ?>
<phpunit>
<testsuites>
<testsuite name="Tests">
<directory>tests</directory>
</testsuite>
</testsuites>
</phpunit>
Ahora, cuando ejecuto el comando:
phpunit
Me sale el siguiente resultado:
PHPUnit 4.5.0 por Sebastian Bergmann y colaboradores.
Configuración leída de /Users/muyiwa/Projects/DatabaseHelper/phpunit.xml
Tiempo: 16 ms, Memoria: 1.50Mb
No hay pruebas ejecutadas!
En caso de que sea útil, mi estructura de directorios es la siguiente:
src - Directorio de nivel superior (con todo mi código fuente)
tests - Directorio de nivel superior (con todas mis pruebas, estructuradas de la misma manera que mi carpeta
src
)
proveedor: archivos de terceros de Composer
También tengo el compositor json y el archivo de bloqueo, así como el archivo phpunit xml en el nivel superior como archivos.
Cosas que he probado
-
Cambiar el directorio en
phpunit.xml
atests/GeneralStringFunctions
-
Cambiar el directorio en
phpunit.xml
a./tests
-
Mover el archivo
phpunit.xml
al directorio detests
y luego cambiar el directorio a./
lugar detests
. -
Agregar un atributo de sufijo a la etiqueta del directorio en
phpunit.xml
para especificar "Pruebas" como sufijo explícito.
En Windows use el siguiente comando en la terminal
./vendor/bin/phpunit
eso es si el comando
phpunit
devuelve "¡No se ejecutaron pruebas!"
mientras que en Mac
./vendor/bin/phpunit
Espero eso ayude.
Esto es muy tarde, pero espero que ayude a alguien.
Obtuve mis pruebas para ejecutar utilizando una referencia absoluta. estructura de carpetas [project / tests / test.php]
mi línea de directorio se veía así ./tests/test.php
La mía fue un poco divertida.
Cuando usé
php artisan make:test
, accidentalmente puse
.php
como
ProductRewardPointController.php
que creó
ProductRewardPointController.php.php
y
phpunit
simplemente lo ignoró.
Solo elimino el .php extra y las cosas vuelven a la normalidad
Me arranqué el cabello durante 10 minutos antes de decidir usar --debug (una buena forma de hacerlo) para descubrir el simple hecho de que el nombre del archivo no respetaba la convención de nombres , tenía una "s" extra al final .
incorrecto
/** test */
function a_thread_can_be_deleted()
{
...
}
derecho
/** @test */
function a_thread_can_be_deleted()
{
...
}
espero que esta nota pueda ayudar a alguien
Me doy cuenta de que esto es muy viejo, pero también me pasó a mí. Espero que esto ayude a alguien.
Mi problema fue que olvidé el símbolo ''@'' en / ** @test * /
INCORRECTO:
CreateAdminTests
DERECHO:
CreateAdminTest
Para mí, usando phpunit --debug me mostró qué prueba no se estaba ejecutando, por dentro, tenía
$this->visit(''/'')
->see(''Laravel'');
y creo que debido a que el directorio estaba protegido con autenticación .htaccess, no pudo acceder a visitar la página
La solución para mí fue realizar esta prueba (o muy probablemente eliminar la autenticación .htaccess)
Por lo que vale (llegar tarde), me encontré con esto recientemente mientras estaba haciendo un nuevo proyecto de Laravel 5.1 para un sitio web simple. Intenté depurarlo y me confundí cuando intenté:
php artisan make:test homeTest
(que tiene una prueba predeterminada que simplemente afirma que true es verdadero)
y vi la salida
No tests executed!
El problema que terminé siendo para mí estaba relacionado con mi instalación de PHP: "phpunit" se registró globalmente y se configuró de manera diferente, mientras que el phpunit que vino con la instalación de Laravel se configuró correctamente y funcionó perfectamente.
Entonces, la solución ejecuta el phpunit configurado del proveedor (desde el mismo directorio raíz que la aplicación / y las pruebas /):
./vendor/bin/phpunit
Espero que ayude a alguien más!
Solo necesita llamarlo desde el archivo del proveedor
vendor/bin/phpunit
Notice / Not /
Su archivo XML está bien como está.
Sin embargo, debe asegurarse de que los archivos PHP en sus
tests/
carpeta tengan el siguiente nombre:
tests /
Test.php
<--- Tenga en cuenta la "T" mayúscula
pruebas / usuario
Test.php
tests / fooBar
Test.php
etc.
Los nombres de los archivos deben terminar con "Test.php" . Esto es lo que PHPUnit está buscando dentro de los directorios.
Además, cada método de prueba debe tener un nombre que comience con "prueba":
public function testFooBar()
{
// Your test code
}
¡Espero que ayude!
Tal vez un poco al lado, pero si está (como yo) usando Laravel en Vagrant, asegúrese de ejecutar phpunit dentro del cuadro vagabundo y no en el "lado de las ventanas". :)
Tuve el mismo problema de ¡ No se ejecutaron pruebas! , resuelto manteniendo el mismo nombre de archivo y nombre de clase .
Tuve el mismo problema después de que PHPUnit en nuestras máquinas virtuales se actualizara a la versión 6. Incluso --debug y --verbose no dijeron nada útil, solo "No se ejecutaron pruebas". Al final resultó que las clases y los espacios de nombres se cambiaron en la nueva versión y simplemente no quería ejecutar los archivos que contenían referencias a clases antiguas. La solución para mí fue simplemente reemplazar en cada caso de prueba esto:
class MyTestCase extends /PHPUnit_Framework_TestCase {...}
con:
use PHPUnit/Framework/TestCase;
class MyTestCase extends TestCase {...}
Tuve el problema de que no se ejecutaran pruebas, incluso cuando las cosas estaban bien configuradas.
La causa fue que el espacio de nombres no era el primer comando del archivo, sino después de algunos comentarios de doc-block.
revertir causó que phpunit vea las pruebas y se ejecute correctamente.
el uso de la consola de cmd resolvió este problema pasando la ruta enterely Prueba realizada
No encontré otra forma de hacerlo No funciona de esta manera
Espero que esto haya sido útil para alguien
si está usando PHPSTORM vaya a Configuración y luego vaya a
-
Test Frameworks
y haga clic en + y elija
-
PHPUnit Local
entonces -
Use Composer Auto Loader
luego pegue esto como en la ruta al campo de script -
C:/{YOUR PROJECT NAME}/vendor/autoload.php
- haga clic en Aceptar
-
HAPPY TESTING