ReSharper5.0とSeasar.NET、そしてGallio

メモ用に、久しぶりに技術ネタです。
ReSharper5.0がリリースされて、時間がたちましたが、なかなかその周囲の環境がまだ出揃っていないようです。
Seasar.NETで、S2Unitを使用しようとすると、MbUnitが必要です。
以前のバージョンのReSharperでも、MbUnitと連携させようとすると、なにかサポートツールが必要でした。
最近のReSharperとMbUnitを連携させるのが、もっぱらGallioです。
ところが、最新安定版であるGallio v3.1 Update2は、ReSharperの4.5までしか対応していません。
現在対応しているのがNightly Build版であるv3.2です。
Nighly Build版なので、利用は自己責任でお願いします。

まず、Gallioのサイトのダウンロードページの下のほうにあるthe latest development buildへのリンクをたどって開発版のダウンロードページへ行きます。
どれを落とせばよいかは、残念ながら分かりません。
私は、なんとなく、少し前の5月中旬の頃のものを利用しました。
ここで、ダウンロードするのはzip圧縮版です。msiのファイルにはReSharperのプラグインが含まれておりません。
zip圧縮版をダウンロードして、解凍し、どこか適当なところに置きます。
なお、私の場合、最初はzip版に気づかなかったので、msi版をインストールした後に解凍したzipファイル版を上書きしております。

解凍したなかのbinフォルダの中にReSharperというフォルダがあるので、その中のv5.0というフォルダの中がReSharper5.0用のプラグインです。
それをコピーして、ReSharperのフォルダ、JetBrains → ReSharper → v5.0 → Binとすすみ、PluginsPluginというフォルダが有るか確認し、無ければ作成します。
その中にGallioとフォルダを作成し、解凍したなかにあったReSharper5.0用のプラグインをペーストします。
Visual Studioを起動し、メニューのReSharper → Pluginsで追加されていればOKです。

これでReSharperからMbUnitを利用できたわけですが、まだS2Unit.NETを使用することはできません。
S2TestCaseのクラスを作って、VisualStudioでReSharperからUnitテストを実行しても、依存関係の例外が発生して、エラーになります。
これは、MSDNから引用すると
厳密な名前付きアセンブリに対して .NET Framework アプリケーションを構築すると、実行時に新しいバージョンが利用できる場合でも、既定で、アプリケーションの構築時に使用したアセンブリのバージョンが使用されます。

ということであり、Gallioで利用している新しいバージョンのMbUnitにアセンブリバージョンをリダイレクトしてやる必要があります。
これはS2Unit.NETが以前のMbUnitを使ってビルドされているからです。

Galiioがデフォルトで利用しているのはMbUnit3のようですが、一緒に同梱されているMbUnit2プラグインが動作し、MbUnit2で動かすことができました。
もちろん、そうするのも、S2Unit.NETはMbUnit2を利用しています。

というわけなので、解凍し配置したGallioの中のbin\MbUnit2にあるGallio.MbUnit2Adapter.pluginというファイルを開きます。
44行目あたりに



というところがあります。
これはもともとMbUnitのバージョンをリダイレクトしているのですが、古いバージョンをMbUnit2.4を想定していることを意味しています。
なので、例外が発生するので、



というふうに古いバージョンを1.0を想定するように変更し、新しいバージョンを今のSeasar.NETに同梱されている2.4.3.355にすることにします。
そして、保存します。
これで、Visual Studioの中からReSharper5.0経由でS2TestCaseを使ってUnitテストが出来るようになったと思います。

補足ですが、S2Container.NETのマニュアルにあるS2Unit.NETのセットアップは不要でした。

ReSharper5.0での利用を書いてきましたが、ReSharper4.5以前は普通に安定版のGallioを使用すれば動作すると思いますし、以上の説明は開発版を利用した場合ですのでいつ動作しなくなるのか分かりませんので、自己責任でお願いいたします。

<6/12追記>
すいません。まず、ReSharperのプラグインのフォルダはPluginではなく、Pluginsでした。
他の環境で試したわかったのですが、GallioのmsiI版をインストールしておいた方が良いようです。適切な設定がされていないとかなんとかのエラーが発生します。
いわずもがなですが、上記のS2Unit.NETに関するところはMbUnit2.4.2.355をインストールしていることが前提です。インストールに関してはS2Unit.NETのセットアップに関してお読みください。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック