【问题标题】:Can you "skip" a code block in phpunit?你能在 phpunit 中“跳过”一个代码块吗?
【发布时间】:2017-02-02 03:03:31
【问题描述】:

我被分配到一个旧项目,目前正在做测试用例。我在将数据保存到 excel 的某个代码块上出现错误。

但是,该方法会输出一个标头,因此 phpunit 会显示“无法修改标头信息”。

有没有办法告诉phpunit喜欢不要执行那个方法?

$codeCoverageIgnore 并不能解决问题,因为它只取决于代码覆盖的数据。我找不到告诉 phpunit 的东西,“不要执行这个”。

    header('Content-Type: application/vnd.ms-excel;charset=utf-8');
    header('Content-type: application/x-msexcel;charset=utf-8');
    header('Content-Disposition: attachment;filename="' . $this->sFileName . '"');
    header('Cache-Control: max-age=0');

这是我从 phpunit 得到的错误

无法修改标头信息 - 标头已发送(输出开始于 D:\xampp7\php\pear\PHPUnit\Util\Printer.php:172)

【问题讨论】:

  • 您好,欢迎来到 SO。请添加一些代码和/或您尝试过的东西,以便我们更好地为您提供帮助。请阅读How to Askminimal reproducible example 以提出更好的问题。
  • $this->warningOff();或 phpunit.xml 中的 stderr="true"

标签: php phpunit testcase


【解决方案1】:

有两种方法可以解决这个问题 - 重构代码,以便在您可以覆盖的函数中输出标头 - 根本不运行,或者使用 output buffering 来捕获标头(和任何其他输出)让他们出去。使用缓冲样式有一个优势,因为可以检索和检查输出,然后将其丢弃(ob_get_cleanob_get_contentsob_clean)。

【讨论】:

    猜你喜欢
    • 2021-02-14
    • 1970-01-01
    • 2017-03-28
    • 2017-04-08
    • 1970-01-01
    • 2011-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多