読者です 読者をやめる 読者になる 読者になる

.logbook

学んだことを書き綴る、言わば航海日誌です。

NUnitをVisual Studio Express 2013 for Windows Desktopで使用する

気づけばVisual Studio Expressも2013が登場している。2012以降はユニットテストフレームワークを搭載しており、ツール等をインストールしなくてもテストコードを書いて、実行することができる。

しかし、C#について言えば従来NUnitが主流となっており使用していた人も多いことだろう。よって、Visual Studio Express 2013 for Windows DesktopにてNUnitを使用するための環境を構築する方法をまとめる。先に述べておくと、Visual Studio(Expressではない)では統合開発環境NUnitをパッケージとして組み込むことができるようであるが、Expressでは不可能であった。従って、Visual Studio Express 2010までと同様にテストの実行、結果の表示はNUnit(別ツール)にて行うこととなる。

f:id:ylgbk:20131214192459p:plain

インストール

基本的なインストール手順は従来と変わらない。下記URLよりNUnitのインストーラを取得する。(.msiが良いだろう)

NUnit - Download

ダウンロードが完了後、インスローラを起動する。インストール範囲を尋ねられるが「Typical」を選択しておけば問題ない。

テスト対象、テストコードの作成

それぞれ作成する。今回は下記の通り作成した。

プロジェクトはテスト対象用「Computer」とテストコード用「ComputerTest」の2プロジェクトを作成した。

f:id:ylgbk:20131214193005p:plain

テスト用のプロジェクトには「テスト対象」「NUnitフレームワーク」「NUnitのモック」を参照に追加することを忘れない。

f:id:ylgbk:20131214193312p:plain

中身のソースは下記の通り。

PC.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Computer
{
    /// <summary>
    /// 電源状態
    /// </summary>
    public enum PowerStatus{
        OFF,
        ON,
    }

    public class PC
    {
        // 電源状態
        private PowerStatus power;
        public PowerStatus Power { get { return this.power; } }

        /// <summary>
        /// コンストラクタ
        /// </summary>
        public PC()
        {
            this.power = PowerStatus.OFF;
        }

        /// <summary>
        /// 起動する
        /// </summary>
        public void StartUp()
        {
            this.power = PowerStatus.ON;
        }
    }
}

PCTest.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using NUnit.Framework;
using Computer;

namespace ComputerTest
{
    [TestFixture]
    class PCTest
    {
        /// <summary>
        /// テスト対象
        /// </summary>
        private PC pc_;

        [SetUp]
        public void SetUp()
        {
            // テスト対象を生成する
            this.pc_ = new PC();
        }

        [TearDown]
        public void TearDown()
        {

        }

        [Test]
        public void 起動前テスト()
        {
            // 結果を判定する
            Assert.AreEqual(PowerStatus.OFF, this.pc_.Power);
        }

        [Test]
        public void 起動テスト()
        {
            // 起動する
            this.pc_.StartUp();

            // 結果を判定する
            Assert.AreEqual(PowerStatus.ON, this.pc_.Power);
        }

    }
}

テストの実行

テストはNUnit.exeにて実行する。 Visual Studio Expressのソリューションを読み込ませるために、一部設定を変更する必要がある。

メニューバーの「Tools→Settings」をクリック

f:id:ylgbk:20131214194016p:plain

サイドメニューにて「VisualStudio」をクリックし、「Enable Visual Studio Support」にチェックを入れる。

f:id:ylgbk:20131214193813p:plain

メニューバーより「File→Open Project」をクリックし、テストコードが含まれるプロジェクトを開く。

f:id:ylgbk:20131214193646p:plain

メイン画面の「Run」ボタンをクリックするとテストが実行される。 見事、グリーンバーである。

f:id:ylgbk:20131214194016p:plain

次回予告

今回、NUnitの実行までは確認できた。しかし、テストダブルという面でモックの使用方法も確認する予定だ。これについては次回とする。