Есть несколько способов не запускать конкретный тест - поместить его в черный список, чтобы он никогда не запускался, может быть не лучшим образом - так как его изменение означает редактирование черного списка, и вы часто в конечном итоге будете вводить и выводить егоконтроля версий.
Есть несколько других способов, которые могут быть более подходящими:
Если тест еще не готов к запуску:
$this->markTestIncomplete('This test has not been implemented yet.');
Если есть внешняя причина, по которой его не следует запускать, пропустите его:
if (!extension_loaded('mysqli')) {
$this->markTestSkipped('The MySQLi extension is not available.');
}
Вы также можете поместить это в функцию setUp()
, такон пропустит все тесты в тестовом классе.
Вы можете сделать тест в зависимости от предыдущего, следующего за ним:
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)
{
}
The @group -name- annotation - один из лучших способов специально остановить или запустить одну группу тестов
/**
* @group database
* @group remoteTasks
*/
public function testSomething()
{
}
testSomething()
теперь в двух группах, и если любой из них добавлен в командустрока (или в config.xml) параметр --exclude-group
.это не будет работать.Аналогично, вы можете запускать только те тесты, которые относятся к определенной группе - скажем, по имени функции или сообщению об ошибке.