free as in air

2007|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|09|11|12|
2012|03|04|05|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|03|04|06|09|
トップ 最新 /追記

2013-04-14 [長年日記] この日を編集

§ [php] CIUnitのパッチ

 諸々の理由でCodeIgniterで開発してるんだけど、時間がないのでなんとなくTDDでやってる。テストありきのほうが戻りが少ないだろうという理由。

 そんなわけでCIUnitKenji_sパッチを当てたバージョンを使ってるのだが、コントローラのテストのためにPOSTとGETをクリアしたくなったのと、今作ってるやつが複数DBを見る構造(これも諸々の理由)なので複数DBに接続して結果を見たかったのでちょっといじった。そのパッチ

 CodeIgniterは3系の話が出てるんで、出たらまた変わりそうだけど、RequirementがPHP5.3系になる(ツッコミもらった。ツッコミの通り、3系も5.2.4以降が対象だそう。ただ5.2は2011年でEOLになってるし、5.3もあと1年くらいなので、これから作るなら5.4以降だといいのでは。と言いつつ殆どの人はレン鯖のバージョンに引っ張られるんだろうしな。今見てるプロダクトも5.1が絶賛稼働中だし。)んで、5.3ならFuelPHPでいいんじゃないかな。Kenji_sも今はFuelPHPのほう使ってるようで、Issue溜まってるし。CodeIgniterはControllerのインスタンスにClassLoaderがロードしたクラスを変数として外挿するような密結合な作りなのでUnitTest書いててどうも不可思議なことが多くて困る。

 なんというか、PHP自体があんまりUnitTest向きじゃないと思う。理由は、POSTとGETを処理系が勝手にグローバル変数にしてしまう点と、出力が本当にそのまま出力な点。register_globalsをしないようにしたところで、POSTとGETというグローバル変数に置いてしまうのだからどうしようもない。まあクリアすりゃいいんだけど。出力の方はもうどうしようもなくて、油断してPHPタグの外にスペースを書こうものなら出力されるし。

 CIUnitで書いていいのはモデルのテストまでで、Controllerのテストはせずに、振る舞いのテストをCucumberでやるほうがいいんじゃないかとも思う。今のプロジェクトではやらんけど…。

 PHPUnitそのまま使えるっぽいな。これでよかったかもしれぬ。

 追記:ジェームズの記事読んだけどフレームワークのコード変えたりしてるな。やってることもCIUnitと似てる(index.phpをbootstrapとして使うとか)。CIUnitならfixtureの読み込みがかなり簡略化されてるし、DB設定もCodeIgniterそのままだし楽。PHPUnitだとDBUnit入れたり、fixutureをYAMLで書きたかったPHPUnit_Extensions_Database_DataSet_YamlDataSetを使うようにしたりしないといかんのが面倒。ただPHPUnitを直接使うユーザのほうが多いので、ハマるとこは少ないし、そっちのほうが応用は効くよな。

§ [program] 本

§ [music] 3つ

  RADIO ONSEN EUTOPIA(やくしまるえつこ)

 やくしまえるえつこの歌声が思いの外元気でびっくりする。気怠い感じがどっか行ってる。

  eureka(きのこ帝国)

 音楽聴いてる時いつも思うけど言葉が邪魔な気もする。シューゲイザーっぽいのは何曲かだけじゃないかなあ。思ったより少ない。むしろくるり・アジカンっぽい。

 しかしたゆたう感じがいいね。

  Apocryphon(Sword)

 いつもどおりだと思う。なんというか変わらんな。

 追記:聴き込んでるけど、スラッシュメタル感が殆どなくなってる。

お名前 : コメント :


2013-04-16 [長年日記] この日を編集

§ [Ruby] 失敗(Cucumber+Capybara+some engins on Cygwin/OpenBSD)

 リモートアプリの本当に振る舞いだけのテストをやろうと思って試したら失敗した。

 結論:LinuxかOSX使え。

 とりあえず動くのはSeleniumだけだけど遅い(Cygwinではパッチが必要)。

 Capybara-webkitはビルドの機種依存がベタ書きなので、Linux/OSX/FreeBSD(/Win32?)のみ。

 poltergeistはPhantomJSのコンパイルが無理。あとX欲しいとか言われる。

 mechanizeは実行するとRackアプリじゃねえとか言うし、terminusはインストールできるけどtimeoutする。

 Ruby-installer 1.9.3とWaitr-WebDriverでFirefoxとChromeが動くのは試した。ならSeleniumでもいいんだろうけど。

 やっぱHeadlessで高速に動かしたいよな。

お名前 : コメント :


2013-04-17 [長年日記] この日を編集

§ [ruby] Cucumber on Windows

 RubyInstaller 1.9.3とdevkit入れて、Capybara-SeleniumドライバとかWatirDriverなら動く。

 RubyInstall 2.0.0は、まだ入れちゃダメだ…。

 headless系が難しいな。動的ページでなければmechanizeとかで全然いいけど。ただmechanizeはpage.form.inputとかインスタンス細かく作るしpage.submit formみたいな書き方なので、step定義するときちょっとめんどくさい。

 Capybara-webkitはdevkitのバッチで環境変数設定すればビルドできるけど、まだちゃんと動かせてない。poltergeistはプロセス周りでエラーになるようだが。

 CapybaraでページがAJAXで更新後になるまで待つには using_wait_time(10) {page.should have_css('td.book')} 等とするといいらしい。

お名前 : コメント :


2013-04-19 [長年日記] この日を編集

§ [devel] Gentoo Prefix on Cygwin

 すごい使ってみたいけど地雷の匂いしかしない。

お名前 : コメント :


2013-04-22 [長年日記] この日を編集

§ [book] 1922 (文春文庫)(スティーヴン キング/Stephen King/横山 啓明/中川 聖)

 読了。因果応報的な何か。短編のほうは超後味悪い感じ。とりあえず読みやすい。

お名前 : コメント :