WindowsでFuelPHP 1.7.2のCoreのテストが失敗する

XAMPP for Windows 1.8.3-4では、FuelPHP 1.7.2のCoreのテストでエラーと失敗がありました。

FAILURES!
Tests: 375, Assertions: 410, Failures: 4, Errors: 36.

FuelPHP 1.7.1でも同じようにエラーと失敗していました。

FAILURES!
Tests: 361, Assertions: 376, Failures: 4, Errors: 36.

エラーが出たのは、Fuel\Core\Test_Agentクラス、失敗はFuel\Core\Test_Debug、Fuel\Core\Test_Fieldsetの2つのクラスです。

Agentクラスのエラーは、XAMPP for Windowsに含まれているbrowscapファイルが壊れていることが原因のようです。PHPのget_browser()関数が以下のエラーを出します。

get_browser(): Delimiter must not be alphanumeric or backslash

このbrowscapファイルを無効にするようにphp.iniを変更すれば解消しました。

@@ -1491,7 +1491,7 @@

 [browscap]
 ; http://php.net/browscap
-browscap="C:\xampp\php\extras\browscap.ini"
+;browscap="C:\xampp\php\extras\browscap.ini"

 [Session]
 ; Handler used to store/retrieve data.

Linux環境ではこの設定はnull(PHPのデフォルト)になっており、その場合、FuelPHPのAgentクラスが最新のbrowscapファイルをダウンロードして一定期間キャッシュします。上記の設定変更でWindows環境でも同じ動作になります。

残りの4つの失敗は、出力される結果の改行コードの違いによりテストが失敗するというもののようです。本家Issuesに投稿しました。

関連

Date: 2014/09/10

Tags: fuelphp