You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为特定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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 16:09:13