如何为特定PHPUnit测试类添加--stderr选项解决MPDF头部已发送问题
如何为特定PHPUnit测试类单独添加--stderr选项?
我有一个TestPdfGeneration.php测试文件,通过MPDF生成PDF并输出。由于MPDF的运行机制,运行该测试时必须添加--stderr选项,否则会出现“headers already been sent(头部已发送)”的报错。我查阅了PHPUnit文档,但未找到为特定测试文件动态添加该选项的方法。
我可以在phpunit.xml文件中全局添加该选项,但这会对所有测试生效;我希望仅为实际需要的测试类启用这个选项。
补充说明
以下是我生成PDF的代码,使用适配Laravel的MPDF包装器,可通过getMpdf()函数获取mPDF对象:
$pdf_config = [ 'tempDir' => __DIR__ . '/tempPdf', 'format' => 'A4', 'setAutoTopMargin' => 'pad', 'margin_top' => 5, 'margin_footer' => 5, ]; $pdf = PDF::getPdf($pdf_config); if(isset($pdf_data['bozza'])) { $pdf->getMpdf()->SetWatermarkText('DRAFT'); $pdf->getMpdf()->showWatermarkText = true; } $pdf->getMpdf()->setAutoTopMargin = 'pad'; $pdf->getMpdf()->shrink_tables_to_fit = 1; $pdf->getMpdf()->WriteHTML(View::make($pdf_data['view'], $pdf_data, [])->render()); // D -> Download // I -> Inline => stream return $pdf->getMpdf()->Output($pdf_data['filename'], 'I');
我认为问题核心在于mPDF中的WriteHTML函数,因为此时会调用视图的渲染方法。
内容的提问来源于stack exchange,提问作者Cynical
相关产品推荐
相关产品推荐

