unitarias tutorial pruebas para example español ejecutar descargar php phpunit

tutorial - ¿Cómo ejecutar un método de prueba único con phpunit?



phpunit tutorial español (12)

Aquí está la respuesta más genérica:

Si está seguro de que el nombre del método es único, solo puede filtrar por nombre del método (esto funciona para mí)

phpunit --filter {TestMethodName}

Sin embargo, también es más seguro especificar la ruta / referencia del archivo

phpunit --filter {TestMethodName} {FilePath}

Ejemplo:

phpunit --filter testSaveAndDrop reference/to/escalation/EscalationGroupTest.php

Nota rápida: He notado que si tengo una función llamada testSave y otra función llamada testSaveAndDrop usando el comando phpunit --filter testSave también ejecutará testSaveAndDrop y cualquier otra función que comience con testSave* , ¡es extraño!

Estoy luchando por ejecutar un único método de prueba llamado testSaveAndDrop en el archivo phpunit escalation/EscalationGroupTest.php con phpunit . Probé las siguientes combinaciones:

phpunit EscalationGroupTest escalation/EscalationGroupTest.php --filter=escalation/EscalationGroupTest.php::testSaveAndDrop phpunit EscalationGroupTest escalation/EscalationGroupTest.php --filter=EscalationGroupTest.php::testSaveAndDrop phpunit EscalationGroupTest escalation/EscalationGroupTest.php --filter=EscalationGroupTest::testSaveAndDrop phpunit EscalationGroupTest escalation/EscalationGroupTest.php --filter=testSaveAndDrop

En cada caso, se ejecutan todos los métodos de prueba en el archivo escalation/EscalationGroupTest.php . ¿Cómo seleccionar solo UN método en su lugar?

El nombre de la clase es EscalationGroupTest y la versión de phpunit es 3.2.8.


Debe usar --filter para ejecutar un único método de prueba php phpunit --filter "/::testMethod( .*)?$/" ClassTest ClassTest.php

El filtro anterior ejecutará testMethod solo.


El siguiente comando ejecuta la prueba en un solo método:

phpunit --filter testSaveAndDrop EscalationGroupTest escalation/EscalationGroupTest.php phpunit --filter methodName ClassName path/to/file.php

Para las versiones más nuevas de phpunit, es solo:

phpunit --filter methodName path/to/file.php


El siguiente comando ejecutará exactamente la prueba testSaveAndDrop .

phpunit --filter ''/::testSaveAndDrop$/'' escalation/EscalationGroupTest.php



La razón por la que todas sus pruebas se están ejecutando es porque tiene el indicador --filter después del nombre del archivo. PHPUnit no lee las opciones en absoluto y, por lo tanto, ejecuta todos los casos de prueba.

Desde la pantalla de ayuda:

Usage: phpunit [options] UnitTest [UnitTest.php] phpunit [options] <directory>

Así que mueva el argumento --filter antes del archivo de prueba que desee como se menciona en las respuestas de @Alex y @Ferid Mövsümov. Y solo debe tener la prueba que desea ejecutar.


Prefiero marcar la prueba en anotaciones como

/** * @group failing * Tests the api edit form */ public function testEditAction()

Luego ejecutándolo con

phpunit --group failing

No es necesario especificar la ruta completa en la línea de comando, pero debe recordar haberlo eliminado antes de confirmar, para no saturar el código.

También puede especificar varios grupos para una sola prueba

/** * @group failing * @group bug2204 */ public function testSomethingElse() { }


Puedes probar esto, puedo ejecutar casos de prueba individuales

phpunit tests/{testfilename}

P.ej:

phpunit tests/Test.php

Si desea ejecutar casos de prueba individuales en Laravel 5.5, intente

vendor/bin/phpunit tests/Feature/{testfilename} vendor/bin/phpunit tests/Unit/{testfilename}

P.ej:

vendor/bin/phpunit tests/Feature/ContactpageTest.php vendor/bin/phpunit tests/Unit/ContactpageTest.php


Si está en netbeans, puede hacer clic derecho en el método de prueba y hacer clic en "Ejecutar método de prueba enfocado".



Sin embargo, llego tarde a la fiesta. Pero como personal odio escribir toda la línea.

En cambio, utilizo los siguientes accesos directos en el archivo .bash_profile , asegúrese de obtener el archivo .bash_profile después de agregar cualquier alias nuevo, de lo contrario no funcionará.

alias pa="php artisan" alias pu="vendor/bin/phpunit" alias puf="vendor/bin/phpunit --filter"

Uso:

puf function_name puf filename

Si usa Visual Studio Code , puede usar el siguiente paquete para simplificar sus pruebas.

Package Name: Better PHPUnit Link: https://marketplace.visualstudio.com/items?itemName=calebporzio.better-phpunit

Luego puede establecer la combinación de teclas en la configuración. Yo uso Command + T vinculante en mi MAC.

Ahora, una vez que coloque el cursor en cualquier función y luego use la combinación de teclas, ejecutará automáticamente esa prueba.

Si necesita ejecutar toda la clase , coloque el cursor en la parte superior de la clase y luego use el enlace de teclas.

Si tiene alguna otra cosa, siempre modifique con la Terminal

¡Feliz codificación!


para ejecutar la prueba phpunit en laravel de muchas maneras ...

vendor/bin/phpunit --filter methodName className pathTofile.php vendor/bin/phpunit --filter ''namespace//directoryName//className::methodName''

para prueba de clase individual:

vendor/bin/phpunit --filter tests/Feature/UserTest.php vendor/bin/phpunit --filter ''Tests//Feature//UserTest'' vendor/bin/phpunit --filter ''UserTest''

Para el método único de prueba:

vendor/bin/phpunit --filter testExample vendor/bin/phpunit --filter ''Tests//Feature//UserTest::testExample'' vendor/bin/phpunit --filter testExample UserTest tests/Feature/UserTest.php

para ejecutar pruebas de toda clase dentro del espacio de nombres:

vendor/bin/phpunit --filter ''Tests//Feature''

para más pruebas de ejecución ver más