mysqlのrootパスワードの有無に関するphpunit実行について

89 views
Skip to first unread message

いのうえしげゆき

unread,
Jul 10, 2012, 4:20:39 AM7/10/12
to bear-project
お疲れ様です。

私がBEAR.Sundayをインストールした環境はVMWare上に構築したものだったのであまり気にしてなかったのですが
NEKOGETさんがぼそっとmysqlのrootにパスワードが設定してあるとphpunitが通らないといってたので
ちょっと検証してみました。

その結果をブログ記事に掲載しましたのでご報告したします。
http://ikkandou.blogspot.jp/2012/07/bearsundayphpunit.html

また昨日あたりだったと思いますがphpunit実行時にNoticeが出るようになったようですので
一応当該ログを貼っておきます。

---ここから
PHP Notice: Illegal member variable name in
/home/shige/BEAR/BEAR.Sunday/vendor/Ray/Di/src/Ray/Di/Injector.php on
line 449
PHP Stack trace:
PHP 1. {main}() /home/shige/BEAR/BEAR.Sunday/apps/sandbox/htdocs/web.php:0
PHP 2. sandbox\App::factory($runMode = 'Dev', $useCache = TRUE)
/home/shige/BEAR/BEAR.Sunday/apps/sandbox/htdocs/web.php:63
PHP 3. Ray\Di\Injector->getInstance($class = 'sandbox\\App', $params
= *uninitialized*)
/home/shige/BEAR/BEAR.Sunday/apps/sandbox/App.php:73
PHP 4. Ray\Di\Injector->bindModule($setter = array (), $definition =
class Ray\Di\Definition { public $Scope = 'prototype'; public
$PostConstruct = NULL; public $PreDestroy = NULL; public $Inject =
array ('setter' => array (...)); public $ImplementedBy = array ();
public $user = array (); public $optional = array (); public
$by_method = array ('setCache' => array (...), 'setDi' => array (...),
'setExceptionHandler' => array (...), 'setResponse' => array (...),
'setResource' => array (...)) }, $module = ...)
/home/shige/BEAR/BEAR.Sunday/vendor/Ray/Di/src/Ray/Di/Injector.php:215
PHP 5. Ray\Di\Injector->bindMethod($setterDefinition = array
('setCache' => array (0 => array (...))), $definition = class
Ray\Di\Definition { public $Scope = 'prototype'; public $PostConstruct
= NULL; public $PreDestroy = NULL; public $Inject = array ('setter' =>
array (...)); public $ImplementedBy = array (); public $user = array
(); public $optional = array (); public $by_method = array ('setCache'
=> array (...), 'setDi' => array (...), 'setExceptionHandler' => array
(...), 'setResponse' => array (...), 'setResource' => array (...)) },
$getInstance = class Closure { })
/home/shige/BEAR/BEAR.Sunday/vendor/Ray/Di/src/Ray/Di/Injector.php:388
PHP 6. array_walk(array (0 => array ('pos' => 0, 'typehint' =>
'Guzzle\\Common\\Cache\\CacheAdapterInterface', 'name' => 'cache',
'annotate' => 'resource_cache', 'typehint_by' => array (...),
'optional' => TRUE)), array (0 => class Ray\Di\Injector { protected
$config = class Ray\Di\ApcConfig { ... }; protected $params = class
ArrayObject { ... }; protected $setter = class ArrayObject { ... };
protected $container = class Ray\Di\Container { ... }; protected
$module = ...; private $preDestroyObjects = class SplObjectStorage {
... }; private $log = NULL; public $bind = class Ray\Aop\Bind { ... }
}, 1 => 'bindOneParameter'), array (0 => class Ray\Di\Definition {
public $Scope = 'prototype'; public $PostConstruct = NULL; public
$PreDestroy = NULL; public $Inject = array (...); public
$ImplementedBy = array (...); public $user = array (...); public
$optional = array (...); public $by_method = array (...) }, 1 => class
Closure { })) /home/shige/BEAR/BEAR.Sunday/vendor/Ray/Di/src/Ray/Di/Injector.php:422
PHP 7. Ray\Di\Injector->bindOneParameter($param = array ('pos' => 0,
'typehint' => 'Guzzle\\Common\\Cache\\CacheAdapterInterface', 'name'
=> 'cache', 'annotate' => 'resource_cache', 'typehint_by' => array (),
'optional' => TRUE), $key = 0, $userData = array (0 => class
Ray\Di\Definition { public $Scope = 'prototype'; public $PostConstruct
= NULL; public $PreDestroy = NULL; public $Inject = array (...);
public $ImplementedBy = array (...); public $user = array (...);
public $optional = array (...); public $by_method = array (...) }, 1
=> class Closure { }))
/home/shige/BEAR/BEAR.Sunday/vendor/Ray/Di/src/Ray/Di/Injector.php:422
---ここまで

でわ
--
いのうえ しげゆき Twitter: @kaepapa33 mailto:kae...@gmail.com

Akihito Koriyama

unread,
Jul 10, 2012, 6:11:13 AM7/10/12
to bear-p...@googlegroups.com
dbはtravis の環境に合わせての設定です。
http://about.travis-ci.org/docs/user/database-setup/

各環境に合わせての問題対策というのは難しいので(例えばMySQLが動いてない等) Travis を基準にしています。

unit testを再度Travisでやってみたのですがnoticeはでませんでした。

--
Akihito Koriyama
> --
> このメールは Google グループのグループ「The BEAR Project for PHP」の登録者に送られています。
> このグループに投稿するには、bear-p...@googlegroups.com にメールを送信してください。
> このグループから退会するには、bear-project...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/bear-project?hl=ja からこのグループにアクセスしてください。
>

いのうえしげゆき

unread,
Jul 10, 2012, 8:52:02 AM7/10/12
to bear-p...@googlegroups.com
お疲れ様です。

2012年7月10日 19:11 Akihito Koriyama <akihito....@gmail.com>:
> 各環境に合わせての問題対策というのは難しいので(例えばMySQLが動いてない等) Travis を基準にしています。
了解しました。

Noticeが出た原因(?)がわかりました。
今日別件でxdebugをインストールしましてそれが影響していたようです。
xdebugのphp.iniの記述をコメントアウトしたところNoticeが消えました。
xdebugの記述がある状態でmysqlのrootパスワードが設定されているときに
テストファイルの中でrootパスワードが設定されていない時にテスト実行が途中で落ちてしまうこともありました。

これらを踏まえるとインストールドキュメントである
http://code.google.com/p/bearsunday/wiki/Install

にはBEAR.Sundayディレクトリにおけるphpunitの実行についての記載検討が必要かもしれませんね。

インストール過程で単体テストを実行して問題なく動く状態であることが確認できるのは
ユーザとしては非常に嬉しいことだと思いますが現状だとmysql rootパスワードの有無
そしてblogbearテーブルについての記載が足りてない状況であると思われます。

これらを加えるのかはたまたインストールドキュメントはユーザが利用するものと捉えて
phpunitの言及は避け動作確認のためにビルトインサーバでの実行やCLIインターフェイスでの
動作説明等に留めるべきか郡山さんとしてはどちらを念頭に置かれていますでしょうか。

ユニットテストの重要性は現状広く認められつつあるので後者を選択した場合にはsandboxアプリ内での
phpunitの実行をBlogチュートリアルの方に記載するのも一つの方法かもしれませんね。

Akihito Koriyama

unread,
Jul 10, 2012, 9:15:38 AM7/10/12
to bear-p...@googlegroups.com
いのうえさん

テストはユーザーがインストール後に簡単に実行可能であるべきと思います。DB関連の記述不足は単にドキュメント不足です。DBのインサートは本来はスクリプト(bootstrap ?)でやるのがいいのではないかと思います。

--
Akihito Koriyama <akihito....@gmail.com>



いのうえしげゆき

unread,
Jul 10, 2012, 9:20:44 AM7/10/12
to bear-p...@googlegroups.com
おつかれさまです。

なるほど。

では現状でのテーブル作成やrootパスワードの設定ファイルについて
時間を見つけて追記してみたいと思います。

でわ
--
いのうえ しげゆき Twitter: @kaepapa33 mailto:kae...@gmail.com


2012年7月10日 22:15 Akihito Koriyama <akihito....@gmail.com>:

koriym

unread,
Jul 15, 2012, 2:14:38 AM7/15/12
to bear-p...@googlegroups.com
Typo修正しました。これでパスワード設定しても大丈夫なはずです。
https://github.com/koriym/BEAR.Sunday/commit/23336d0fef9267c3da321ab9e862cad1fcc5e371

2012年7月10日火曜日 22時20分44秒 UTC+9 いのうえしげゆき:
おつかれさまです。

なるほど。

では現状でのテーブル作成やrootパスワードの設定ファイルについて
時間を見つけて追記してみたいと思います。

でわ
--
いのうえ しげゆき Twitter: @kaepapa33 mailto:kae...@gmail.com


2012年7月10日 22:15 Akihito Koriyama <akihito....@gmail.com>:
> いのうえさん
>
> テストはユーザーがインストール後に簡単に実行可能であるべきと思います。DB関連の記述不足は単にドキュメント不足です。DBのインサートは本来はスクリプト(bootstrap
> ?)でやるのがいいのではないかと思います。
>
> --
> Akihito Koriyama <akihito....@gmail.com>
>
>
>
>
> --
> このメールは Google グループのグループ「The BEAR Project for PHP」の登録者に送られています。
> このグループに投稿するには、bear-project@googlegroups.com にメールを送信してください。
> このグループから退会するには、bear-project+unsub...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/bear-project?hl=ja
> からこのグループにアクセスしてください。

いのうえしげゆき

unread,
Jul 15, 2012, 3:28:02 AM7/15/12
to bear-p...@googlegroups.com
おつかれさまです。

HEADでのMySQL rootのパスワードが設定されている状態での
phpunitパスを確認しました。
先程issueの方もcloseとさせて頂きました。

時間をみつけてはじめてのシリーズを追ってみたいと思います。

でわ
--
いのうえ しげゆき Twitter: @kaepapa33 mailto:kae...@gmail.com


2012年7月15日 15:14 koriym <akihito....@gmail.com>:
> Typo修正しました。これでパスワード設定しても大丈夫なはずです。
> https://github.com/koriym/BEAR.Sunday/commit/23336d0fef9267c3da321ab9e862cad1fcc5e371
>
> 2012年7月10日火曜日 22時20分44秒 UTC+9 いのうえしげゆき:
>>
>> おつかれさまです。
>>
>> なるほど。
>>
>> では現状でのテーブル作成やrootパスワードの設定ファイルについて
>> 時間を見つけて追記してみたいと思います。
>>
>> でわ
>> --
>> いのうえ しげゆき Twitter: @kaepapa33 mailto:kae...@gmail.com
>>
>>
>> 2012年7月10日 22:15 Akihito Koriyama <akihito....@gmail.com>:
>> > いのうえさん
>> >
>> >
>> > テストはユーザーがインストール後に簡単に実行可能であるべきと思います。DB関連の記述不足は単にドキュメント不足です。DBのインサートは本来はスクリプト(bootstrap
>> > ?)でやるのがいいのではないかと思います。
>> >
>> > --
>> > Akihito Koriyama <akihito....@gmail.com>
>> >
>> >
>> >
>> >
>> > --
>> > このメールは Google グループのグループ「The BEAR Project for PHP」の登録者に送られています。
>> > このグループに投稿するには、bear-p...@googlegroups.com にメールを送信してください。
>> > このグループから退会するには、bear-project...@googlegroups.com にメールを送信してください。
>> > 詳細については、http://groups.google.com/group/bear-project?hl=ja
>> > からこのグループにアクセスしてください。
>
> --
> このメールは Google グループのグループ「The BEAR Project for PHP」の登録者に送られています。
> このディスカッションをウェブ上で閲覧するには、https://groups.google.com/d/msg/bear-project/-/aSxiY8kerFgJ
> にアクセスしてください。
>
> このグループに投稿するには、bear-p...@googlegroups.com にメールを送信してください。
> このグループから退会するには、bear-project...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/bear-project?hl=ja
> からこのグループにアクセスしてください。
Reply all
Reply to author
Forward
This conversation is locked
You cannot reply and perform actions on locked conversations.
0 new messages