PHPUnit\Framework\Error\Warning:ini_set():标头已发送。此时您无法更改会话模块的 ini 设置

问题描述 投票:0回答:1

我正在按照 zend 的教程 在我的项目上使用 zend-test,但我得到了这个 error

为了构建我的项目基础,我完成了这本书的最大部分。

我也在使用 PHP 7.2。

当我搜索 google 时,我发现很多人在使用 PHP 7.2 和 PHP Unit 时遇到问题,但现在看起来已经没问题了。 zend-test 也更新了吗?如果没有,我现在可以做什么来使用 zend-test ?如果是,我如何获得最新版本?

编辑

经过一番测试,我发现问题出在 bootstrap 函数上:

public function onBootstrap( MvcEvent $event ) { $application = $event->getApplication(); $serviceManager = $application->getServiceManager(); $sessionManager = $serviceManager->get(SessionManager::class); $eventManager = $event->getApplication()->getEventManager(); $sharedEventManager = $eventManager->getSharedManager(); // Registra o método fo event listener $sharedEventManager->attach(AbstractActionController::class, MvcEvent::EVENT_DISPATCH, [$this, 'onDispatch'], 100); // Caso a sessão não seja válida, esquece ela $this->forgetInvalidSession($sessionManager); }

更具体地说,问题从这一行开始:

$sessionManager = $serviceManager->get(SessionManager::class);

编辑2

删除它使用的行 e,它比工作还好,但开始在类似行的另一个模块中给出相同的错误:

$authService = $container->get(\Zend\Authentication\AuthenticationService::class);
    
phpunit zend-framework3 php-7.2 zend-test
1个回答
0
投票
使用

--stderr

 参数来表示 phpunit

phpunit YourTestFile.php --stderr
来自文档:

--stderr Write to STDERR instead of STDOUT
PHPUnit 正在编写自己的输出(例如,每当我运行它时,我都会看到:

"PHPUnit 8.5.2 by Sebastian Bergmann and contributors."

)。这被认为是 PHP 中页面的 STDOUT,当然,这意味着“文本已被发送”。如果您将输出转移到 STDERR,STDOUT 将只是您正在测试的 PHP 文件的输出。

© www.soinside.com 2019 - 2024. All rights reserved.