DEV Community

dala00
dala00

Posted on • Originally published at crieit.net

LaravelのHTTPテストでoutput buffersが閉じられていないエラー

Laravelのテストでいつの間にかRiskyテストが出るようになっていた。失敗ではないのでCIでも何も言われなかったようで、実行時にもエラーが発生していなかったので気づかずにいたらしい。

具体的には下記のようなエラー。

Test code or tested code did not (only) close its own output buffers  
Enter fullscreen mode Exit fullscreen mode

結論としては、下記のようなテンプレートの書き方をしていたために正常にレスポンスが返っていなかったらしい。

@section('additionallTag', $data->tag)  
Enter fullscreen mode Exit fullscreen mode

これは特に記述自体は問題ないと思うが、変数の中に入っているのがHTMLタグだったため今回のエラーが発生しているっぽい。そのため下記のように修正したところ改善した。

@section('additionalTag')  
{!! $data->tag !!}  
@endsection  
Enter fullscreen mode Exit fullscreen mode

同じエラーの改善方法を解説している記事も見つけた。

LaravelのHTTPテストでなぜかresponseが返ってこない件

この場合はsectionが閉じられていないためとのことだが、今回のように変数の指定によってはうまく閉じられなくなってしまうということっぽい。

Top comments (0)