rhu*_*uff 9 phpunit output-buffering
我正在使用PHPUnit测试一套REST Web服务.我们正在使用输出缓冲来对响应进行gzip编码.当我使用PHPUnit运行服务测试时,我收到错误:
Cannot modify header information - headers already sent by (output started at /home/dotcloud/php-env/share/php/PHPUnit/Util/Printer.php:172)
Run Code Online (Sandbox Code Playgroud)
它抱怨我的代码echo是浏览器的输出...
通过ob_start()在测试类的顶部添加一个调用,我能够暂时解决这个问题,但是当我一次运行多个测试时,我再次收到此错误.
有任何想法吗?
Fab*_*ler 13
有几种选择有不同的优点和缺点:
@runInSeparateProcess正如您已经发现的那样,在单独的进程中运行测试.好:更好的测试隔离,坏:性能更差,不适用于全局常量--stderrflag将PHPUnit输出定向到STDERR.好:测试按预期工作而不做任何更改,坏:感觉就像一个肮脏的解决方法,可能是CI工具的问题header()存根的类,要么不容易,或者想要进行全功能测试,请模拟header()函数本身.有关在此答案中模拟内置函数的更多信息.好:您也可以测试标题的内容,您的测试确实更少依赖于全局状态错误:您需要编写更多测试代码我会去(3)并且可能重构代码以便有一个负责标题的类,并且可以很容易地模拟.
| 归档时间: |
|
| 查看次数: |
7319 次 |
| 最近记录: |