2017-09-15 56 views
0

我有一个工作站点在“/”上新建了Laravel 5项目。当我尝试用PHPUnit 5.7.21运行所提供的功能测试tests/Feature/ExampleTest.php我收到的状态码500Laravel 5和PHPUnit视图测试失败 - 头文件已发送

1) Tests\Feature\ExampleTest::testBasicTest 
Expected status code 200 but received 500. 
Failed asserting that false is true. 

如提供的测试类。

<?php 

namespace Tests\Feature; 

use Tests\TestCase; 
use Illuminate\Foundation\Testing\WithoutMiddleware; 
use Illuminate\Foundation\Testing\DatabaseMigrations; 
use Illuminate\Foundation\Testing\DatabaseTransactions; 

class ExampleTest extends TestCase 
{ 
    /** 
    * A basic test example. 
    * 
    * @return void 
    */ 
    public function testBasicTest() 
    { 
     $response = $this->get('/'); 

     $response->assertStatus(200); 
    } 
} 

作为$response的一部分返回的页面声明以下错误。

ini_set(): Cannot change zlib.output_compression - headers already sent 

我没有改变提供的PHPUnit配置文件中的任何值。

在我的中间件中,我使用压缩来确保网站的压缩输出。

<?php 

namespace App\Http\Middleware; 

use Closure; 

class AfterMiddleware { 
    /** 
    * Handle an incoming request. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @param \Closure $next 
    * @return mixed 
    */ 
    public function handle($request, Closure $next) { 
     ini_set('zlib.output_compression', 'On'); 
     return $next($request); 
    } 
} 

当我取消注释ini_set一行,一切顺利。我能做些什么来启用压缩并能够运行PHPUnit?

非常感谢您的帮助。

回答

0

设置您的ini_set('zlib.output_compression', 'On');编辑php.ini文件,然后将它应用于全局应用程序。

zlib.output_compression = On 

如果使用php --ini你会得到使用INI文件列表,其路径使用