ユニットテストツールもろもろ
.NETでは、大きくわけて、NUnit、MbUnit、MSTest(Visual Studioのユニットテスト)、xUnit.netという4つのユニットテストツールが存在します。それぞれ、機能やシンタックスに特徴があるわけですが、それをまとめたページがCodePlexにあります
xUnit.net - Unit Testing for .NET
4つのユニットテストツールには、少しずつ違いがあります。例えば、4つの中で一番後発のxUnit.netは、
- テストクラスの宣言・・・[TestFixture]属性ではなく、Publicなメソッドを自動的に対象
- テストの準備と破棄・・・[SetUp]属性と[TearDown]属性ではなく、コンストラクタとデストラクタを使う
- アサート文・・・「AreEqual〜」ではなく「Equal〜」のようにAre〜なしのシンタックスを使う
というような特徴があります。全体としては、他のツールの機能の補完、取り込みが進んでいて
- 流れるようなインターフェースの採用(テストが書きやすい構文のサポート)
- データドリブンテストのサポート(NUnitのデータドリブンサポートやMbUnitのCSVテストなど)
- 属性の拡張と規約ベースのサポート
という流れがあるような気がしました。
JUnitなどの他言語の状況は把握してないのですが、.NETでは、このように複数のユニットテストツールがあるために、全てのテストを走らせられる「Gallio」がMbUnitから独立して登場しようとしてます。Gallioのバージョンは分かりにくい(最新バージョンがGallio Alpha 3 Update 3)ので、安定版がいつになるのはかは不明ですが、レポーティング機能や、CC.NET/NANT/MSBuild等との統合もできるので気になる存在です。
あとは、PexというMicrosoft Researchのホワイトボックステストを自動生成する仕組みも注目です。
- 参考
- 追記(2008-10-18)