2012年11月24日土曜日

MSpecをReSharperと一緒に使うための設定 on Visual Studio 2010

Machine Specification(MSpec)はBDDスタイルのテストフレームワークで、BDDスタイルの開発をするなら至極便利。そのMSpecもReSharperと組み合わせてVisual Studio 2010上で簡易にテスト実行できるようにしておかないとありがたみが失せるので設定方法を紹介しておく。

MSpecのReSharperに対する設定が完了すると、下図のようにVSのテストファイルの左側にポケモンボールのようなアイコンがテスト毎に表示されるようになるし、メニューからReSharper -> Unit Tests -> Run Unit Testsでテストを実行できるようにもなる。

実はNuGetからもMSpecの取得は可能なのでそちらから取得してもかまわない。今回はGitHubから取得したmachine/machine.specificationsを使用する。適当にcloneするなりzipファイルをダウンロードして展開してもらいたい。フォルダが展開できたら直下にあるbuild.cmd(Releaseビルドしたい場合はbuild-release.cmd)を実行しよう。実行するとDOS窓が起動し、うにょうにょとビルドが始まり、テストが実行され、しばらくすると完了する。するとBuildフォルダができているので、そこからDebugかReleaseを自分の好みにあわせて選択してもらいたい。使用するだけならばReleaseでよいだろう。

で、そのDebugかReleaseフォルダ内にあるInstallReshaperRunner%%.batを実行する。%%の部分は自分のReShaperのVersionに置き換えてもらいたい。実行すると下記フォルダにMachine.Specifications.dll、Machine.Specifications.ReSharperRunner.6.0.dllとそれぞれpdbファイルがコピーされる。ここではv6.0のbatファイルを叩いたとする。

%appdata%\JetBrains\ReSharper\v6.0\vs10.0\Plugins

NuGetから取得した場合は前述の2つのDLLを上記のパスに自分でコピーすればよい。コピーする際にフォルダが無い場合は自分で作ろう。

コピーできたらVSを再起動しよう。再起動後は上図のポケモンボールがテストファイルの左側に表示されているはずだ。

一点注意が必要なのが、JetBrains配下にコピーしたMachine.Spedifications.DLLとVSで参照しているMachine.Spedifications.DLLのバージョンなどが違うとどうやらReSharperのほうでMSpecのプラグインを認識してくれないようなので同じファイルを使用するようにしよう。新しい環境を構築する際にMSpecをNuGetで取得したり、JetBrainsのほうへは古いファイルをコピーしたりなどを行ってしまいMSpecのテストが中々認識されなくて苦労したことがあるので注意してもらいたい。