2009年9月25日金曜日

NUnit で TestSuite の作成と実行

VS2008で、プロジェクト(DLL)毎に記述したテストクラスを
一度にまとめて実行したい!と思ったのが発端。

NUnitのドキュメントを見る限り、どうやらSuite属性を使えば出来る模様。
http://www.nunit.org/index.php?p=suite&r=2.5.2

で作成してみたサンプル
SmapleTest.DLL
------
namespace SmapleTest
{
[TestFixture]
public class SampleTest
{
[Test]
public void TestCase1
{
Assert.Fail("失敗するテストケース");
}
}
}
------

TestSuite.DLL
------
namespace TestSuite
{
public class AllTest
{
[Suite]
public static IEnumerable Suite
{
get
{
ArrayList suite = new ArrayList();
suite.Add(new SampleTest());
return suite;
}
}
}
}
------

これをNUnit.exeに読み込ませてみる。
これで完成!



と思いきや。


NUnitに表示されたのは一行のみ
『C:\TestSuiteSample\TestSuiteSample\bin\Release\TestSuite.DLL』
DLLの絶対パスやん。

おもむろにRUNボタンを押してみるが、動作しません。


再度NUnitのドキュメントを読み直しました今度はちゃんと。

NUnitの起動時に/fixtureのコマンドラインオプションをつけてねと書いてありました。

コマンドプロンプトで以下を実行(全て一行で書いてます。)
-----
C:\Program Files\NUnit 2.5.1\bin\net-2.0\nunit.exe /fixture:TestSuite.AllTest C:\TestSuiteSample\TestSuiteSample\bin\Release\TestSuite.DLL
-----

fixtureオプションでSuite属性のプロパティを持っているクラスの絶対パス(名前空間を含めたフルパス)を指定します。

これで立ち上がったNUnitにちゃんとSampleTestのテストケースが表示され、
実行することが出来ました!


英語を読むのに苦労しましたが、何とかテストスイートの作成に成功!
これで少しテストコードの作成が面白くなってきました♪

.

0 件のコメント:

ラベル