WarningによるPHPUnitのエラーを抑制してテストケースを実行したい
目的
PHPUnitにてWarningが例外化されテストケースがエラーとして処理されてしまった。
テストケース内で想定していた業務エラーとして扱えないのでWarningを抑制したい。1
状況
PHPUnit実行でテストケース結果でエラーが返ってきた。2
今回はopenssl_x509系関数のWarningが原因となっている模様。
openssl_x509_read(): supplied parameter cannot be coerced into an X509 certificate!
(対応パターン1) PHPUnitの設定で抑制する
対象のテストケースで以下の様にする。
public function testXXX(){
$orig = PHPUnit_Framework_Error_Warning::$enabled;
PHPUnit_Framework_Error_Warning::$enabled = false;
//(Warningが発生するテスト)
PHPUnit_Framework_Error_Warning::$enabled = $orig;
}
全体に影響してもいいならsetUp()、tearDown()内でも実施可能。
エラーが抑制され想定通りテストケースが通る様になるが以下のメッセージ出力は残る。
Warning: openssl_x509_read(): supplied parameter cannot be coerced into an X509 certificate!
(対応パターン2) Warningの例外化をキャッチし抑制する3
対象のテストケースで以下の様にする。
public function testXXX(){
set_error_handler(function($errno, $errstr, $errfile, $errline) {});
//(Warningが発生するテスト)
restore_error_handler();
}
エラーが抑制された状態となりWarningメッセージ出力も無くなった。
参考
Author And Source
この問題について(WarningによるPHPUnitのエラーを抑制してテストケースを実行したい), 我々は、より多くの情報をここで見つけました https://qiita.com/fukuyama012/items/a293df4c378269ddb46e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .