我在PHPUnit code coverage session already started中尝试了该解决方案,但没有成功。当我尝试生成代码覆盖率时,仍然出现错误。而且我对导致错误的原因感到困惑。我提供的信息表明,我已经使用了链接问题的答案,并且该问题的证据仍在发生。我正在运行CentOS的Docker实例中运行。
如何使代码覆盖率起作用?为什么我会收到此错误session_start(): Cannot start session when headers already sent
?
PHP 7.2.7
PHPUnit 7.3.1
在没有代码覆盖的情况下运行时,我会获得成功测试的列表。
[root@fada2474faea iop]# vendor/bin/phpunit tests/file6test.php --coverage-html coverage
PHPUnit 7.3.1 by Sebastian Bergmann and contributors.
session_start(): Cannot start session when headers already sent
在未启用代码覆盖率的情况下通过测试。
[root@fada2474faea iop]# vendor/bin/phpunit tests/file6test.php
PHPUnit 7.3.1 by Sebastian Bergmann and contributors.
..... 5 / 5 (100%)
Time: 46 ms, Memory: 6.00MB
OK (5 tests, 5 assertions)
使用链接的其他问题的答案更新代码
[root@fada2474faea iop]# grep -i -R -A1 -B2 session_start *.php
access.php-if(session_status() == PHP_SESSION_NONE)
access.php-{
access.php: session_start();
access.php-}
--
file1.php- if(session_status() == PHP_SESSION_NONE)
file1.php- {
file1.php: session_start();
file1.php- }
--
file2.php- if(session_status() == PHP_SESSION_NONE)
file2.php- {
file2.php: session_start();
file2.php- }
--
logout.php-if(session_status() == PHP_SESSION_NONE)
logout.php-{
logout.php: session_start();
logout.php-}
--
file3.php- if(session_status() == PHP_SESSION_NONE)
file3.php- {
file3.php: session_start();
file3.php- }
--
api.php-if(session_status() == PHP_SESSION_NONE)
api.php-{
api.php: session_start();
api.php-}
--
file4.php-if(session_status() == PHP_SESSION_NONE)
file4.php-{
file4.php: session_start();
file4.php-}
--
file5.php- if(session_status() == PHP_SESSION_NONE)
file5.php- {
file5.php: session_start();
file5.php- }