2015-11-02 37 views
2

我已經得到了這段代碼(只是爲了讓它工作)。從代碼Phpunit測試給出了例外:'封閉'的序列化是不允許的 - Laravel

Route::get('/', function() { 
$phpunit = new PHPUnit_TextUI_TestRunner; 
try { 
    $test_results = $phpunit->dorun($phpunit->getTest('/var/www/cms/tests/', '', 'Test.php')); 
    dd($test_results); 
} catch (PHPUnit_Framework_Exception $e) { 
    print $e->getMessage() . "\n"; 
    die ("Unit tests failed."); 
} 
}); 

代碼示例從運行代碼的測試可以在這裏找到: Can you run PHPUnit tests from a script?

但是當我運行此我得到的錯誤:例外的是:「關閉」序列化是不允許的

我找不出是什麼原因導致此錯誤。

回答

3

我已經解決了這個問題,但它不是一個穩定的修復程序,我想知道一些更好的解決方案。現在我會發布這個答案。

在:/vendor/sebastian/global-state/src/Snapshot.php

替換此行:

$this->globalVariables[$key] = unserialize(serialize($GLOBALS[$key])); 

有了:

$this->globalVariables[$key] = $GLOBALS[$key]; 

我覺得這條線非常奇怪。該函數只是存儲全局變量,我不知道爲什麼它會序列化數據,而立即反序列化它。

+1

這個問題是在該庫 –

+0

爲什麼這個最新版本的PHPUnit還是錯誤,沒有固定的較新版本。 –

+0

看起來它尚未修復,請參閱:https://github.com/sebastianbergmann/global-state/blob/master/src/Snapshot.php – Nabha

相關問題