【发布时间】:2013-10-03 06:17:26
【问题描述】:
注意:这不是重复的问题。我见过一些类似的问题,但我问的是单元测试。
我正在尝试使用 CakePHP 2.3.6 编写测试用例,但使用 header() 函数的测试用例出现问题。测试从浏览器运行没有问题,但从命令行,我收到以下错误。
Cannot modify header information - headers already sent by (output started at /usr/share/pear/PHPUnit/Util/Printer.php:172)
例如,错误发生在我的代码中的以下行。
header( 'Content-Type: application/json; charset=utf-8' );
对于 PHPUnit,可以使用@runInSeparateProcess 来避免这种情况,但在 CakePHP 中,它会导致以下错误。
Notice: Constant TIME_START already defined in /app/lib/Cake/bootstrap.php on line 22
Notice: Constant CAKE already defined in /app/lib/Cake/bootstrap.php on line 48
Notice: Constant APPLIBS already defined in /app/lib/Cake/bootstrap.php on line 60
Notice: Constant SECOND already defined in /app/lib/Cake/basics.php on line 26
Notice: Constant MINUTE already defined in /app/lib/Cake/basics.php on line 27
等等。
我被困住了。有谁知道如何处理这个? 提前非常感谢。
【问题讨论】:
-
使用
quite选项php -q防止标头进入标准输出。 -
谢谢,但没用。
-
那你做错了什么。即使运行
php-cgi而不是php-cli,php -q也应该可以工作。
标签: php cakephp testing header phpunit