[RoR] rake test

今日もRuby on Railsで遊びました。

今日はモデルのテストを作成してみたのですが、テストスクリプトを単体で実行するとテストが成功するのに、”rake test”すると失敗する現象に遭遇。

失敗するテストは日本語文字列がらみなのでいろいろ調べてみると、rakeを使った場合にはテスト用テーブルがサーバデフォルトの文字コードで作成されてしまうらしいことが判明。その辺はまったく設定されてなかったので、テーブルはlaten1で作成されてしまってました。
“rake clone_structure_to_test”だと文字コード情報もコピーされるんですが。

最終的に、/etc/my.cnfに以下の記述を追加してデフォルトをutf8にしたことで、問題は解消されました。

[mysqld]
default-character-set=utf8
default-collation=utf8_general_ci
Technorati Tags:[]

FC5にMySQL/Rubyを入れる

ここのところ Ruby on Rails で遊び始めたのですが、環境設定不足でRoR本のチュートリアルがなかなか進みません。
{ ちょっとコードを書く; 動かないので環境設定をする } while true
みたいな感じ。

で、今日は Fedora Core 5 に MySQL/Ruby を入れ忘れていることを発見したのでインストールすることに。

せっかく gem を入れてあるんだから使おうと思って、 “gem install mysql” ってしてみたら、ビルド失敗 orz
extconf.rb に、「libmysqlclient が見つからねえ!」と怒られてしまってます。

MySQL/Ruby のサイトには「LD_RUN_PATH を設定するといいかも。」と書いてありましたが、それではうまくいかなくて、LIBRARY_PATH の方を設定したらうまくいきました。

% env LIBRARY_PATH=/usr/lib/mysql gem install mysql