2017-09-15 59 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文件列表,其路徑使用