Hatena::Groupcatalyst

dann@catalyst このページをアンテナに追加 RSSフィード

2008-02-12

Catalystでのモード切替

| 22:54 |  Catalystでのモード切替 - dann@catalyst を含むブックマーク はてなブックマーク -  Catalystでのモード切替 - dann@catalyst  Catalystでのモード切替 - dann@catalyst のブックマークコメント

Railsライクに、production, development, testの3つの環境を切り替えられるようにしたほうがよさそう。

やらなきゃいけないのは、

  • DB用の設定ファイルの切り替え
    • ConfigLoader::Multiを使って、DBの設定を3つのモードで用意するのかなと。
  • モード切替
    • 環境変数でモード切替
  • 3つのモードのDBの作成
    • DB、テーブル生成

ということで、暇があれば週末にでも。

追記:

starterでテスト用DB、開発用DBの設定ファイルは追加した。ConfigLoader::Multiでの切り分けはまた後で。以下の設定でDBの切り替え。

% MYAPP_CONFIG_LOCAL_SUFFIX=development ./script/myapp_server.pl -d -r
% MYAPP_CONFIG_LOCAL_SUFFIX=test ./scrip/myapp_server.pl -d -r 

myapp.yml, myapp_suffix.ymlの順でロードされ、suffixのファイルで上書きされる。

development, test用のyamlを作っておけばいい(Starterで用意)

後は、CapistranoであらかじめDB作るタスク用意するだけ。

See also:

http://d.hatena.ne.jp/ZIGOROu/20061108/1162971638


追記:

cap deploy:setupで、上記3種のDBを作るようにした。未テストなので週末時間あればテスト。schemaのupdateも、もっと簡単にやりたいな。

CatalystのModel(DBIC)のテスト

| 22:54 |  CatalystのModel(DBIC)のテスト - dann@catalyst を含むブックマーク はてなブックマーク -  CatalystのModel(DBIC)のテスト - dann@catalyst  CatalystのModel(DBIC)のテスト - dann@catalyst のブックマークコメント

Test::Fixture::DBIC::Schema

http://coderepos.org/share/browser/lang/perl/Test-Fixture-DBIC-Schema/trunk/lib/Test/Fixture/DBIC/Schema.pm

これでCatalystのモデルもテストできるなぁ。cool !

テストの中からCatalystのcontext参照する方法だけ調べれば、Catalystのモデルのテストのためのベースクラスは簡単に作れそう。Railsライクに、fixtureのようなメソッドを定義して、複数のFixtureを渡すような実装になる。fixtureメソッドでは、上記のTest::Fixture::DBIC::Schemaのconstruct_fixtureを呼ぶと。Test::Classを使ったベースクラスを作ることになるかな。

後は、これでモデルについてのテストは大体よさそう。実際のDBからFixtureをDumpするようなものを作っておくと、fixture作りが楽になるかな。

大体、これでモデルのテストのイメージは固まった気がする。

CatalystのControllerのテスト

| 22:54 |  CatalystのControllerのテスト - dann@catalyst を含むブックマーク はてなブックマーク -  CatalystのControllerのテスト - dann@catalyst  CatalystのControllerのテスト - dann@catalyst のブックマークコメント

Modelに実装を押し込めば、そんなにControllerのテストが数多く必要になるような気はしないな。Test::WWW::Mechanize::Catalystを使ってテスト。これはどこまでやるかは微妙かなと。Controller込みのテストはSeleniumをベースにした結合テストで十分な気がする。

FastCGI

22:54 |  FastCGI - dann@catalyst を含むブックマーク はてなブックマーク -  FastCGI - dann@catalyst  FastCGI - dann@catalyst のブックマークコメント

Lighty + FastCGIがいいのかなぁ。

http://googlewhacks.blogspot.com/2008/02/london-perl-workshop9catalyst-quick.html

Voxmod_perlだったような気もするんだけれど、実際は何で運用されているのが多いんだろうな。運用部分まで入ると、表面だけ調べたんじゃ全然わからないんだよなぁ。実際に運用している人に聞いてみたいなぁ。

ただ、lighttpd+FastCGIがお勧めってことになっても、lighttpd使ったことないから、移行すればすぐにハマリそうな気はする。。

トラックバック - http://catalyst.g.hatena.ne.jp/dann/20080212