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

Resuelto Alex asked hace 54 años • 14 respuestas

Tengo dificultades para ejecutar un único método de prueba nombrado testSaveAndDropen el archivo escalation/EscalationGroupTest.phpcon 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 del archivo . escalation/EscalationGroupTest.php¿Cómo seleccionar solo UN método?

El nombre de la clase es EscalationGroupTesty la versión phpunites 3.2.8.

Alex avatar Jan 01 '70 08:01 Alex
Aceptado

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 versiones más nuevas de phpunit, es simplemente:

phpunit --filter methodName path/to/file.php
Alex avatar Sep 29 '2014 08:09 Alex

Prefiero marcar la prueba en anotación 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 eliminarla 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()
{
}
iamtankist avatar Feb 24 '2015 11:02 iamtankist