2016-10-19 33 views
2

ドッカーのコンテナでPHPUnit経由でCakePHP2アプリケーションをテストする際にいくつかの問題があります。GitLab CI Docker CakePHP 2のテストがうまくいきません

CakePHP2 testing guideは、CakePHP2と互換性がある最後のPHPUnitバージョンが3.7.38であると述べています。

私は、このバージョンを使用していますが、それでも私は、次のエラーを取得:

あり、このエラーに関連 issueだったが、それは、PHPUnitの4から

PHPUnitの3にダウングレードすることで解決された

Warning Error: include(PHPUnit/Autoload.php): failed to open stream: No such file or directory in [/builds/application_folder/lib/Cake/TestSuite/CakeTestSuiteDispatcher.php, line 162]

Warning Error: include(): Failed opening 'PHPUnit/Autoload.php' for inclusion (include_path='/builds/zb2/kswf/lib:.:/usr/local/lib/php') in [/builds/application_folder/lib/Cake/TestSuite/CakeTestSuiteDispatcher.php, line 162]

は、ここで私は私の.gitlab-ci.ymlのIプリントのbefore_scriptセクションではGitLabランナー

FROM php:5 
RUN apt-get update -y 
RUN apt-get install -y wget 
RUN sh -c 'wget -c https://phar.phpunit.de/phpunit-3.7.38.phar -O phpunit.phar && chmod +x phpunit.phar && mv phpunit.phar /usr/local/bin/phpunit' 

のために使用している画像に対してDockerfileですPHPUnitのバージョンで正しいバージョンがインストールされていることを確認し、3.7.38を出力します。

私はこれに関する助けに感謝します!

+0

私は同じ問題を抱えていますが、現時点では解決策はありません:-( –

答えて

1

さて、phpunitにはv4からの自動ロードファイルがありません(正しく覚えていれば)。 phpunit.pharにパッケージされているすべてのファイルは、直接コード内のrequireステートメント(例えば5.3.4 pharの場合、ファイル内を見るとファイルの23〜517行目を占める)を介してインクルードされます。これは、pharファイルがPHPUnit_TextUI_Command :: main()をすべて準備して起動するように、CLIでphpunitコマンドを使ってテストを開始することです。

PHPコードからテストを起動する必要がある場合は、すべての準備を自分で行う必要があります。クラスの読み込みのみを記述する場合は、マッパーとspl_autoload_registerを実装するか、クラスのダンプを作成してphpunitのすべてのファイルを含むファイルを作成します(pharファイルの場合と同様)。もう一つの選択肢(試したことはありませんが、私はそれを考えています)は、Composerを使ってphpunit用のダンプとオートローダーを作成しているかもしれません。

私はコモドIDEのために、このようなランチャーを実装していると私は最初のオプション(私自身のダンパー、マッパーとオートローダー)だけで、すぐにすべてのファイルが含まれており、唯一実際に必要なものをロードしても、できることはされていないものを選びましたさまざまなバージョンのphpunitを持っていて実行してください。

私はすべてをコメントとして書こうとしましたが、十分に短くはできませんでした。

関連する問題