Hay un número de maneras de no ejecutar una prueba en particular - ponerlo en una lista negra de manera que nunca se ejecuta puede no ser la forma - como el cambio que significa la edición de la lista negra, y a menudo terminas rebotando dentro y fuera del control de la versión.
Hay varias otras maneras que pueden ser más apropiada:
Si una prueba aún no está listo para funcionar:
$this->markTestIncomplete('This test has not been implemented yet.');
Si hay una razón fuera de él no debe ser ejecutar, omitirlo:
if (!extension_loaded('mysqli')) {
$this->markTestSkipped('The MySQLi extension is not available.');
}
También puede ponerlo en la función setUp()
, por lo que omitirá todas las pruebas en una clase de prueba.
Puede hacer depender una prueba en una anterior éxito:
public function testEmpty()
{
$stack = array();
$this->assertTrue(empty($stack));
return $stack; // also sends this variable to any following tests - if this worked
}
/**
* only runs if testEmpty() passed
*
* @depends testEmpty
*/
public function testPush(array $stack)
{
}
La anotación -name- @group es una de las mejores formas de detener específicamente, o ejecutar un grupo de pruebas
/**
* @group database
* @group remoteTasks
*/
public function testSomething()
{
}
testSomething()
se encuentra ahora en dos grupos, y si bien se añade en la línea de comandos (o en el config.xml) --exclude-group
parámetro. no se ejecutará. Del mismo modo, podría ejecutar solo las pruebas que pertenecen a un grupo en particular, por ejemplo, el nombre de una función o informe de error.
¿Estás tratando de evitar encontrarse con uno o más de su pruebas? –
Sí, eso es precisamente lo que trato de hacer. 1 clase de prueba = 1 archivo. –