MonoDevelop で NUnit を使ってみた。(Mac でだけど、多分 Win や Linux でも行けるはず)

発端

なんか話の流れで ↓ MonoDevelopNUnit や Git のサポートについて発表することになってしまいました。



といっても自分は MonoDevelop について「にわか」ユーザなので、まずは NUnit について Hello, World 的なことをやってみました。

ソリューションを作ろう

まずは NUnit のソリューションを作りましょう。
MonoDevelop を立ち上げて、画面左上の「Start New Solution..」をクリック。

f:id:quwahara:20120805105125p:plain

Wizard が始まります。
左手のツリーから「C# > NUnit」を選択。
真ん中のペインから「NUnit ライブラリプロジェクト」を選択。
「名前(a):」にとりあえず「MyNUnit1」と入力。
「ソリューション名(s):」欄は魔法少女が入力してくれます。

ここで「NUnit ライブラリプロジェクト」を選択しないと、右下の「進む」ボタンが押せません。
そんなことでハマるのは私だけですか、そうですか。

では「進む」ボタンをクリック。

f:id:quwahara:20120805105549p:plain

次に 「GTK#サポート」について聞いてくるんですが、まだよくわかんないのでガン無視で「OK」ボタンをクリック。

f:id:quwahara:20120805110130p:plain

さあ、これで素敵な単体テストスタブが焼き上がりましたね!
みんな大好き、NUnit のアトリビュートがぺたぺた付いてます。お得ですね!

f:id:quwahara:20120805110340p:plain

〜 ちょっと脇道、ビューとパッド 〜

しばらく使ってて気づかなかったんですが、
Eclipse で「パースペクティブ」って読んでるやつが、MonoDevelop では「ビュー」になってます。
Eclipse でワークスペースのツリー表示、VS で「ソリューション・エクスプローラー」などを表示する画面は
MonoDevelop では、「パッド」と呼ぶようです。

f:id:quwahara:20120805110859p:plain

単体テスト / NUnit を実行する。

それではとっとと実行してみましょう。
「実行 > 単体テストを実行」をクリック。

f:id:quwahara:20120805111115p:plain

画面下にテスト結果、画面右にテスト項目のツリーがでました。
分かり易くてはかどりますね。

f:id:quwahara:20120805112248p:plain

折角なので、失敗するテストも流しましょう。
まずは失敗するテストメソッドを書きました。
「TestCaseToBeFailed ()」がそれです。
そして同じように「実行 > 単体テストを実行」をクリック。

f:id:quwahara:20120805111844p:plain

画面右のツリーでは失敗した項目が赤丸になります。
画面下にテスト結果には

  • 失敗したメソッド
  • 失敗した Assert の内容 (Expectedふんにゃらはんにゃら、But wasほんたらかんたらのやつ)
  • その箇所のスタックトレースがでます。

もちろん、スタックトレースの箇所をダブルクリックすると、その箇所に飛んでいってくれます。
便利ですね!

f:id:quwahara:20120805112451p:plain

再び「良い子になる!」と失敗するテストメソッドを書き変えて同じように実行します。
めでたくテストは成功しました。

f:id:quwahara:20120805113555p:plain

ブレークポイントを張ってみよう

どうも単体テスト実行では、ブレークポイントを張っても効かないようでした。
ブレークポイントを張って単体テスト実行をしてもぬるっと実行が終わってしまいます。

f:id:quwahara:20120805113751p:plain

そこで「実行 > Start Debugging」をクリックします。

f:id:quwahara:20120805113931p:plain

そうすると
「もうアプリが1っこ動いてて、止めにゃならんが、それでも続けんの?」
とか聞いてくるので、
とりあえず日本人らしく
「はい」
と答えます。

f:id:quwahara:20120805114036p:plain

そうするとご覧のようにブレークポイントで停止します。
ローカル変数の内容もちゃんとみれますね。
実行の再開は、

  • 「歯車2つに緑のワンポイント」のアイコン
  • 「実行 > Continue debugging」

のいずれかを押します。

f:id:quwahara:20120805120022p:plain

とりあえずこれで、NUnit のとっかかりにはなるかなぁと思います。



ではでは ノシ

(追記)
MonoDevelop 3.0.3.5 で行いました

f:id:quwahara:20120805195340p:plain