このエントリーをはてなブックマークに追加

Ruby 1.9.2 + Rails3でテストカバレッジを取るにはSimpleCovが良さそう

Ruby (Rails) でテストカバレッジといえば Rcov ですね。

しかし Rcov は Ruby 1.9.x に非対応なので Ruby 1.9.2 + Rails3 な環境で開発をしている方は SimpleCov を使うと幸せになれます。名前にSimpleと付いていますが高機能で見た目も綺麗です。

また simplecov-rcov を併用すれば Rcov のフォーマットで出力することも出来るので、Jenkins などのCIツールとの連携も難しくないはずです。

使い方

Gemfileに下記コードを追加してbundle installします。

spec/spec_helper.rb の最上位に下記コードを追記します。

準備完了。rake specを実行すれば coverage ディレクトリの中に結果が生成されています。

そういえば…

以前 cover_me紹介記事を書いた事を今更思い出しました。こちらのライブラリも引き続き開発が続けられているようです。

このエントリーをはてなブックマークに追加

Node.js アプリをデプロイして Upstart で起動させる Capistrano レシピを書いた

Node.js アプリをデプロイする場合、Heroku などの PaaS を使っているとすごく簡単なのですが、デプロイ先が VPS や専用サーバの場合、何かしらのツールを使ってデプロイをする事になると思います。

今回はデプロイツールに Capistrano を使うことにしました。ただ、Capistrano はそのままだと Rails 用になっているので、Node.js 用に少しレシピを書き換えます。

ちなみに当初の予定では起動・監視ツールに Node.js製の Forever を使うはずだったのですが、v0.5系でうまく動作しなかったので急遽 Upstart で代用することにしました。他にも Upstart + God という組み合わせも良さそうですがまだ未検証。

使い方

set :node_pathで Node.js がインストールされているパスを指定し、set :node_scriptで起動したいJSファイルを指定します。あとの項目は通常のデプロイと変わらないと思います(上のレシピはGit前提で書いていますが)

デプロイ先に必要なディレクトリや Upstart のスクリプトを作成するには下記コマンドを使います。

デプロイしてアプリを起動するには下記コマンドを使います。リポジトリに package.json を置いておけば自動的にnpm installが動いて node_modules にインストールされます。

以上です。それでは、良い Node.js 生活を。

このエントリーをはてなブックマークに追加

Node.jsで使えるHTTP偽装モジュール node-fakeweb

主に外部のAPIが絡んでくるアプリのテストに使えるモジュールです。Node.jsの標準モジュールであるhttpではなく、requestというモジュール経由のHTTPアクセスを乗っ取ってレスポンスを偽装します。

npmで入れることが出来ます。

使い方は下記のようにします。

実行してみると

ちゃんとレスポンスが偽装されていますね。私はVowsと組み合わせて使っています。