Мне это нужно, потому что все мои тесты зависят от работоспособности базы данных. Если база данных не работает, меня не волнует экран с 10 000 сбоев. Так как simpletest печатает сразу после сбоя, и это просто php-код, вы можете фактически остановить тестирование с помощью простого оператора die
.
Вот как выглядит мой код для моего критического теста "Я подключен".
function testDatabaseAccess()
{
$connected = TRUE;
GLOBAL $clients;
$connected &= $this->assertTrue(is_object($clients), 'Clients database not connected.');
GLOBAL $practices;
$connected &= $this->assertTrue(is_object($practices), 'Practices database not connected.');
GLOBAL $user;
$connected &= $this->assertTrue(is_array($user), 'User not defined.');
GLOBAL $practice;
$connected &= $this->assertTrue(is_object($practice), 'Practice database not connected.');
if (!$connected)
{
die('Not Connected.');
}
}
Который производит:
Конечно, я не получаю итоговую строку, но для моего случая использования мне не нужна или не нужна моя итоговая строка. Нет БД, нет смысла в тестировании. Для остальной части моего тестирования мне действительно нравится, что это немедленно не терпит неудачу. Я обычно хочу видеть все свои неудачи за один проход.