misc.log

日常茶飯事とお仕事と

Visual Studio 2010のテスト機能を使ってみる

今回の案件では、チームの人達は「単体テストVisual Studioの機能で行けるらしいじゃない」ということまでは把握されていたのですが、その先は全然考慮されていませんでした。また、NUnitJUnitでのテストもやったことが無い様子。さらに、チームの開発メンバーのスキルは不明。この状況で単体テストを自動化ってのは不安なので、まずは自分でやってみるしか……。


2週間ほど前に、一度自分でテストコードを書いてAssert文で結果確認するコードは書いてみて動いたのですが、どうもこの辺の雛形を自動でできるみたいじゃないですか。早速Webのチュートリアルを見ながらやりはじめてみました。

チュートリアル
単体テストの作成と実行:http://msdn.microsoft.com/ja-jp/library/ms182532.aspx

やってみた

ちょっと細かい説明や手順を紹介している時間が無いので残念なんですが、これ、使えますね。実際に作成したメソッドを右クリックし「単体テストの作成」のようなメニューを選ぶと、事前につくっておいたテストコードプロジェクトにテストメソッドのひな形が作成されます。きちんと引数や戻り値などの宣言や、やるべきことのコメントも表示されるので、単純なタイピングをひたすら繰り返す手間はだいぶ省かれます。


ま、そのあとにどういうテストコードを書くかというのは、別に自動テストだろうがエクセルに書いたテストケースだろうがおんなじで、人間が「しかるべきテスト内容」を考える必要があります。このあたり、よく勘違いされるのですが、結局は「便利になった」だけであって、昔からのやりかたと根本は同じなんです。この辺を理解するかどうかで敷居はだいぶ下がると思います。


で、さらに良いのがコードカバレッジ。テスト実行で通過した行が全体の何パーセントかを記録し、実際のソースコードの行を色分けして表示してくれます。これで、逃げ隠れできないテスト環境ができますね。

テスト実行時の「実行フォルダ」はどこ?

テスト結果はVisual Studio上に表示されます。テストがログファイルを出力するような形式のものである場合、出力先フォルダに「.\」などを指定すると、下記のフォルダが実行フォルダとして選択されます。

(ソリューションファイルのある場所)\TestResults\(ユーザー名)_(PC名) yyyy-mm-dd hh_mm_ss\Out


このフォルダには、プライベートメソッドへのアクセス用に自動生成されたアクセサークラスのDLLなどもあわせて出力されるようです。