FuelPHPのAspectMockで「Uncaught exception ‘InvalidArgumentException’」が発生した

FuelPHP開発において、UTはAspectMockを利用してカバレッジを上げる施策を行っています。

過去のプロジェクト同様新規プロジェクトでも同じように
・compoerからAspectMockの導入
・UT作成
を実施しようとしたときに掲題のエラーが出ました。

発生時点(2016/09/08)での環境は、
FuelPHP:1.8
PHP:5.6.25
PHPUnit:5.5.4
です。

出力内容は下記。

Fatal error: Uncaught exception 'InvalidArgumentException' with message 'Class FuelException was not found by locator' in /project_path/fuel/vendor/goaop/parser-reflection/src/ReflectionEngine.php:92
Stack trace:
#0 /project_path/fuel/vendor/goaop/parser-reflection/src/ReflectionEngine.php(107): Go\ParserReflection\ReflectionEngine::locateClassFile('FuelException')
#1 /project_path/fuel/vendor/goaop/parser-reflection/src/ReflectionClass.php(45): Go\ParserReflection\ReflectionEngine::parseClass('FuelException')
#2 /project_path/fuel/vendor/goaop/parser-reflection/src/Traits/ReflectionClassLikeTrait.php(452): Go\ParserReflection\ReflectionClass->__construct('FuelException')
#3 /project_path/fuel/vendor/goaop/parser-reflection/src/Traits/ReflectionClassLikeTrait.php(925): Go\ParserReflection\ReflectionClass->getParentClass()
#4 /project_path/fuel/vendor/goaop/parser-reflection/src/Traits/ReflectionClassLikeTrait.php(324): Go\ParserReflection\ReflectionClass->recursi in /project_path/fuel/vendor/goaop/parser-reflection/src/ReflectionEngine.php on line 92

Fatal error: Class 'Config' not found in /project_path/fuel/core/classes/fuel.php on line 381

過去のプロジェクトと同じように設定を行ったはずですがなぜか動きません。

色々調べてみてAspectMockのバージョンに差異があることに気付きました。
過去プロジェクト:1.0.0
新規プロジェクト:2.0.0

さらにGithib上のAspectMockのページを見てみると下記でIssueがありました。
Yii 1.x support broken with 2.x.x release, worked in 1.x.x

題名はYiiフレームワークのものですが、
記載内容を見るとFuelPHPで起こった現象と本質的には同じような感じと見受けられます。

原因については深追いしていませんが、
compoer.jsonで1系のバージョン指定をしてupdateを行うことで動くようになりました。

// "codeception/aspect-mock": "*",
"codeception/aspect-mock": "1.*",
  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る