月 | 火 | 水 | 木 | 金 | 土 | 日 |
---|---|---|---|---|---|---|
29 | 30 | 1 | 2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 | 1 | 2 |
やっと買った。やっと読んだ。
.NET Framework用UnitTestツール を見つけた。 .NET用UnitTestって聞いたこと無かったし、自分で作るつもりでいたくらいなので、かなり嬉しい。 ってことで、早速試してみた。
試したときのサンプルソースとコンパイル・実行方法を載せて覚書としておこう。
まずは、テスト用クラス。 SampleクラスのSayHelloメソッドをテストするようにしてみた。
SampleTest.vb --- Imports System Imports NUnit.Framework Public Class SampleTest Inherits TestCase '親クラスに引数を渡すだけ。 Public Sub New(ByVal name As String) MyBase.New(name) End Sub Protected Overrides Sub Setup() End Sub 'UnitTestを実行する人はコレを探すらしい。 Shared ReadOnly Property Suite() As ITest Get Suite = New TestSuite(GetType(SampleTest)) End Get End Property '実際のテストコード。Test〜で始まるPublicメソッドを実行してくれるそうな。 Public Sub TestSayHello() Dim sample As New Sample Assertion.AssertEquals("Hello World!!", sample.SayHello("World")) Assertion.AssertEquals("Hello momo!!", sample.SayHello("momo")) Assertion.AssertEquals("Hello (none)!!", sample.SayHello("")) Assertion.AssertEquals("Hello (none)!!", sample.SayHello()) End Sub End Class
んでお次はテストされる側のクラス。 ホントは少しずつ作っていく過程を見せたいんだけど、とりあえず完成ソースを示してしまおう。
Sample.vb --- Imports System Public Class Sample Public Function SayHello(Optional ByVal user As String = "") As String If user = "" Then SayHello = "Hello (none)!!" Else SayHello = "Hello " + user + "!!" End If End Function End Class
準備ができたらコンパイル。 NUnitのインストール先は環境に合わせて修正してくれい。
まずは、Sample.vbのコンパイル。
>vbc.exe /t:library Sample.vb
次に、SampleTest.vbのコンパイル。
>vbc.exe /t:library /libpath:"C:\Program Files\NUnit\bin" /r:NunitCore.dll,Sample.dll SampleTest.vb
環境変数LIBに追加しといてもいいかもしれない。
>SET LIB=%LIB%;C:\Program Files\NUnit\bin >vbc.exe /t:library /r:NunitCore.dll,Sample.dll SampleTest.vb
そしたら、テスト。 ・・・その前に、NUnitのインストール先\binにパスを通しておこう。
>SET PATH=%PATH%;C:\Program Files\NUnit\bin >NUnitConsole.exe SampleTest,SampleTest.dll . Time: 0.04 OK (1 tests)
ちなみにエラーのとき。 SayHelloメソッドで"(none)"の判別式をいれてなかった時に出たメッセージ。 ホントは<Hello (none)!!>ってしたいのに、今は<Hello !!>ってなっちゃってるよ〜って 教えてくれている。
>NUnitConsole.exe SampleTest,SampleTest.dll .F Time: 0.05 There was 1 failure: 1) TestSayHello(SampleTest) " expected:<Hello (none)!!> but was:<Hello !!>" FAILURES!!! Tests Run: 1, Failures: 1, Errors: 0
GUIな実行ツールあったんだけど、日本語表示に対応していないようなのが残念(T-T) 日本語版.NET Frameworkでリコンパイルすりゃいいのかなぁ・・・。
このページにリンクを張りたい人はご自由にどうぞ。
疑問・感想・要望・不満・文句・愚痴等々ありましたら↓までメール下さいましm(_ _)m