【ニコニコカレンダー for Redmine 2.X】 3日目

だいぶ時間が経ってしまった・・・。

スモールスタートで、まずは自分のニコニコカレンダーを記録できるところを目指しておりました。


f:id:piccagliani:20130128115720p:plain

このような感じに仕上がっております。

右側のチャート部分には

  • 表示月の「ニコニコ度(ムードや気持ち)」の平均値(「ニコニコスコア」と命名)
  • 表示月の「ニコニコ度」の割合

を表示するようになっています。


ニコニコ度のアイコンは、

はてなアイコンは、

ゲージの表示は、

円グラフの表示は、

を利用させてもらいました。


rubyの書き方にもだいぶ慣れてきた、、、かな。。。

1点、redmineプラグインの単体テストの方法について、あれこれ調べたのでその結果をまとめておきます。

1.テストデータの準備

/path/to/redmine/plugins/plugin_name/test/fixtures 配下に「テーブル名.yml」でテストデータを作成します。
/path/to/redmine/test/fixtures 配下に作成したymlファイルをシンボリックリンクしてます。
そうしないと、テスト実行時に

Errno::ENOENT: そのようなファイルやディレクトリはありません

と怒られました。

なお、テストクラスが使用するfixtureは、以下の4行目のように指定します。

require File.expand_path('../../test_helper', __FILE__)

class NikonikoCalendarControllerTest < ActionController::TestCase
  fixtures :users, :nikoniko_histories

  def test_hogehoge
  end
end
2.テスト用DBの準備

/path/to/redmine/config/database.ymlにtest環境用のDB接続設定を行い、以下を実行します。

$ RAILS_ENV=test rake db:drop db:create db:migrate
$ RAILS_ENV=test redmine:load_default_data
$ RAILS_ENV=test rake redmine:plugins:migrate NAME=redmine_nikoniko_calendar2
3.テストの実行

/path/to/redmine/で、以下を実行

$ RAILS_ENV=test redmine:plugins:test NAME=redmine_nikoniko_calendar2

「rake -T」によると個別に実行する方法もあるようです。

rake redmine:plugins:test:functionals     # Run tests for {:functionals=>"db:test:prepare"}
rake redmine:plugins:test:integration     # Run tests for {:integration=>"db:test:prepare"}
rake redmine:plugins:test:units           # Run tests for {:units=>"db:test:prepare"}

次はプロジェクト単位のニコニコカレンダーを実装していきます。