Игнорирование предупреждений PHP в PHPUnit

Я использую 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; } // ... } }