アレアレ

お役立ち情報、お悩み解決情報を発信!

visual studio for mac

Visual Studio for Macで単体テストをする時に役立つ3つのポイント

Visual Studio for Macで単体テストをする時に役立つ3つのポイント

今回は、Visual Studio for Macを初めて利用する人にお伝えしたいお役立ち情報です。

Visual Studio for Macでは、JavaのJUnitと同じように、NUnitという単体テストツールが利用できます。今回は、そのNUnitで単体テストをする際に役立つマメ知識を3つご紹介します。

単体テストのためのプロジェクトテンプレートは複数ある

最初にご紹介したいマメ知識ですが、Visual Studio for Macにおいて、単体テストを書くためのプロジェクトテンプレートが、複数あることです。

具体的には、次のようなプロジェクトテンプレートがあります。

  1. UI Test Appプロジェクト
  2. Unit Test Appプロジェクト
  3. NUnit ライブラリ プロジェクト

なので、単体テストの目的に合わせて、これらのプロジェクトのテンプレートを適宜使い分ける必要があります。

add-unit-test-project1

で、これらの中で、一番シンプルなものは、3番目のNUnit ライブラリ プロジェクトと言えます。このプロジェクトを利用すると、特定のフレームワークに捕らわれないC#で書いた純粋なプログラムに対する単体テストを書くことができるからです。

なので、共通処理を記述するためのクラスライブラリを作り、そのクラスライブラリのテストを書く目的に適しています。

一方、「UI Test Appプロジェクト」と「Unit Test Appプロジェクト」は、スマホアプリなどのUI側のテストを書くためのものです。なので、クラスライブラリのようなシンプルなコードに対して、単体テストを書くのには向いていません。

ですが、Visual Studio for Macで、テスト用のプロジェクトのテンプレートを追加しようとすると、「UI Test Appプロジェクト」と「Unit Test Appプロジェクト」の方が、分かりやすい位置に出てくるんですね。

なので、「あっ、これでクラスライブラリの単体テストが書けるのか」、と間違って追加してしまいがちです。

「単体テストを実行する」にはショートカットを割り当てると便利

次に。単体テストを書いている時ですが、そのテストを何度も実行したくなりますよね。なので、それを簡単に実行できるように環境を整えておくと便利です。

具体的には、Visual Studio for Macの「実行」メニューにある「単体テストを実行する」に対して、ショートカットを割り当てると良いです。

次の画像は、「option + comman + U」のキーを同時に押すと、単体テストが実行されるように設定した例です。

unit-test-short-cut

このキーの設定方法ですが、次の手順でお好みのショートカットを自分で割り当てることができます。

  1. メニューのVisual Stuidoをクリック→ユーザー設定をクリック
  2. ユーザー設定画面から、環境→キーバーインディングを選び、検索ボックスに「単体」と入力
  3. 「単体テストを実行する」の項目を選択し、「バインディングの編集」欄で好みのショートカットを入力後、適用

asign-unit-test-short-cut

以上の設定がうまくできると、設定したショートカットを押すことで、単体テストが実行できるようになります。

テストのコードをブレークポイントで止めたい時は「デバッグの開始」から実行する

最後に。このようにして、単体テストを実行しながらコードを書いていると、当然ですが、いくつかテストが失敗する箇所が出てくるはずです。

すると、そのデバッグをするために、コードの特定の箇所にブレークポイントを設定して、そこでコードの実行を止めたくなります。

ところが、上でご紹介した「単体テストを実行する」から、単体テストのコードを実行した場合、そのブレークポイントは無視されます。なので、「アレッ?何で止まらないの?」という思いをすることになります。

で、テストのコードを実行し、かつブレークポイントで止めたい時は、Visual Studio for Macの「実行」メニューから、「単体テストを実行する」のではなく、「デバッグの開始」から実行する必要があります。

debug

単体テストのコードは、このように「デバッグの開始」から実行した場合は、ちゃんとブレークポイントで止まるようになります。

Return Top