相关疑难解决方法(0)

PHPUnit输出导致Zend_Session异常

我收到的错误很多,就像这个:

Zend_Session_Exception: Session must be started before any output has been sent to the browser; output started in /usr/local/zend/share/pear/PHPUnit/Util/Printer.php/173
Run Code Online (Sandbox Code Playgroud)

运行我的应用程序的测试套件时.这是PHPUnit 3.5.10和PHP 5.3.5.

没有神秘的,意外的空白输出导致这种情况.我已经确定"发送到浏览器的输出"是正在执行的PHPUnit测试的实际输出.如果我打开PHPUnit/Util/Printer.php并print $bufferif (strpos($buffer, 'PHPUnit 3.5.10 by Sebastian Bergmann') === false)(包括从PHPUnit中有效地停止输出的第一行)包装该行,那么我的第一个测试成功(直到测试用例输出一个指示测试成功的点,然后是下一个测试失败,因为输出了点).

我团队中的另一位开发人员能够成功运行完整的测试套件,因此我知道这不是应用程序代码的问题.它必须是我的本地环境的一些配置设置或问题.

我已经检查过php.ini来验证是否output_buffering已打开并implicit_flush关闭,它们是.

我也尝试添加Zend_Session::$_unitTestEnabled = true;到我的测试引导程序,但这没有帮助(并且不应该是必要的,因为它适用于另一个开发人员的机器和我们的CI服务器上没有它).

除了忽略错误之外的任何建议?我从来没有见过这样的东西,我真的很茫然.

谢谢!

更新:

为了尝试进一步隔离问题,我通过执行以下测试脚本将ZF和我的应用程序排除在外:

<?php

class SessionTest extends PHPUnit_Framework_TestCase
{
    public function testSession()
    {
        session_start();
        $this->assertTrue(true);
    }
}
Run Code Online (Sandbox Code Playgroud)

测试失败:

1) SessionTest::testSession
session_start(): Cannot send session cookie - headers already sent by (output started …
Run Code Online (Sandbox Code Playgroud)

php phpunit zend-framework zend-session

27
推荐指数
2
解决办法
7081
查看次数

有没有办法在PHPUnit中测试STDERR输出?

我有一个输出到的类STDERR,但我找不到让PHPUnit测试其输出的方法.

这堂课,PHPUnit_Extensions_OutputTestCase也没用.

php phpunit

12
推荐指数
2
解决办法
4560
查看次数

标签 统计

php ×2

phpunit ×2

zend-framework ×1

zend-session ×1