F#でUnitTest
やりたいこと
Visual Studio 2012に統合された形でF#のUnitTestを書きたい/動かしたい。
xUnit.netを使う場合
特にテスティングフレームワークには拘りはないのだけど、なんとなくNUnitよりもxUnit.netの方が好きなので、動くようにしてみた。FsUnitというやつを被せればF#でも使えるみたい。
環境構築
Visual Studio上で動くTestRunnerを用意する。xUnit.net runnerをインストールした。
Visual Studioに統合しなくてもよい場合(もしくはExpress Editionを使う場合)は、普通にhttp://xunit.codeplex.com/からパッケージをダウンロードしてきて、外部ツールとして登録するなり、プロジェクトのデバッグ設定で外部ツール実行を設定するなりしとけばよいはず。少し情報が古いけど、プログラミング/C#/Express Edition でのテスト駆動型開発 - takeuchi@ShigekawaLabと同じような手順で設定できるとは思うものの、自分が使わないので未検証。
テストプロジェクトの作成
- F#ライブラリとしてプロジェクトを作成する(xUnit.net用のプロジェクトテンプレートとかないので仕方ない)。
- 作成したテストプロジェクトにNuGetで FsUnit.xUnit をインストール。
- テストコードを書く。サンプルコードはhttps://github.com/dmohl/FsUnitのExamples->xUnitを参照。
ここまでやってしまえば、Visual Studio上でテストを実行できる。
MSTestでよい場合
F# Unit Test Templateを入れるだけ。F#用のMSTestプロジェクトが作れるようになる。