Я использую PHPUnit для модульного тестирования моих функций, когда когда-либо появляется какое-либо предупреждение в коде, тестовый скрипт не будет выполняться для этих функций, может ли кто-нибудь сказать мне, как игнорировать предупреждения и приступать к тестированию
Как прокомментировал Юхана, вы должны прежде всего исправить свой код, где появляются предупреждения (ы). Это признак того, что код работает неправильно / строго.
По умолчанию PHPUnit преобразует ошибки PHP, предупреждения и уведомления, которые запускаются во время выполнения теста для исключения.
См. « Проверка ошибок PHP», в котором содержится дополнительная информация о том, как тестировать ваши предупреждения (и как игнорировать предупреждения в подпрограммах, которые вы вызываете в тестах).
Чтобы отключить поведение по умолчанию, вы можете указать PHPUnit сделать это в своих тестах, например, в пределах setUp
вашего теста или самого теста, установив статическую переменную в глобальное пространство имен:
# Warning: PHPUnit_Framework_Error_Warning::$enabled = FALSE; # notice, strict: PHPUnit_Framework_Error_Notice::$enabled = FALSE;
Другой вариант изменения поведения по умолчанию – настроить testrunner с XML-файлом со следующими настройками:
<phpunit convertErrorsToExceptions="false" convertNoticesToExceptions="false" convertWarningsToExceptions="false"> </phpunit>
Эти три параметра недоступны в качестве ключей командной строки.
См. Также соответствующий вопрос: проверьте возвращаемое значение метода, который вызывает ошибку с помощью PHPUnit .
Документированная стратегия для этого на уровне каждого теста заключается в использовании оператора подавления ошибок @
когда ваш тест вызывает функцию, которая вызовет предупреждение или уведомление.
Следующий код является примером из документации PHPUnit :
<?php class ErrorSuppressionTest extends PHPUnit_Framework_TestCase { public function testFileWriting() { $writer = new FileWriter; $this->assertFalse(@$writer->write('/is-not-writeable/file', 'stuff')); } } class FileWriter { public function write($file, $content) { $file = fopen($file, 'w'); if($file == false) { return false; } // ... } }