2014年6月25日水曜日

cakephp(hhvm+nginx+mysql)のUnit Test

続いて、
unit testの環境を作ります。

CakePHPのUnit Testは、test.phpで実施できますので、
http://192.168.33.10/test.php
を指定します。


PHPUnit is not installed!

と出ます。

hhvmでは、phpをいれなくてもよいので、pearもいらないだろうと思うので、
pearは入れずに、phpunitを入れようと思います。

composerを使ってインストールします。

こちらを参考にしてダウンロードします。
https://github.com/facebook/hhvm/wiki/OSS-PHP-Frameworks-Unit-Testing:-General
https://github.com/facebook/hhvm/wiki/OSS-PHP-Frameworks-Unit-Testing:-CakePHP

$ cd /usr/share/nginx/html/cake_2_5

$ wget https://getcomposer.org/download/1.0.0-alpha8/composer.phar

$ vi composer.json

{
  "config": {
    "vendor-dir": "vendors"
  },
  "require-dev": {
    "phpunit/phpunit": "3.7.*"
  }   
}


そして、インストール。
$ hhvm composer.phar install --dev

次のようなエラーがでることがあります。

SlowTimer [5007ms] at curl: https://packagist.org/p/provider-archived$4f097d431ccbfed3a6c36a172a662645d227ec94d074b7a9484490726c4c5500.json

The "https://packagist.org/packages.json" file could not be downloaded: Failed to open
   https://packagist.org/packages.json (Resolving timed out after 5000 milliseconds)   

などのメッセージが出てました。

タイムアウトっぽいです。
以下のサイトを参照。
https://blog.engineyard.com/2014/hhvm-hack-part-2

$ hhvm -v ResourceLimit.SocketDefaultTimeout=30 -v Http.SlowQueryThreshold=30000 -v Eval.Jit=false composer.phar install --dev

として、なんとかなりそうです。


phpunitが入ったかを確認します。

http://192.168.33.10/test.php

すると、
何も表示されなくなりました。
真っ白です。

一応、PHP Unitはインストールされたとみて良さそうです。


cake_2_5/lib/Cake/TestSuite/CakeTestSuiteDispatcher.php
を調べてみて、
100行目あたりにある
ob_get_clean();
これをコメントアウトして、実施すると、
test.phpが思ったようなTest Casesが出るようになりました。

どうやら
ob_get_clean();
がphpと動きが違うような気がします。
とりあえずは、OKで。
この辺はできれば追って調べることにします。

0 件のコメント:

コメントを投稿