IntelliTest の NUnit Test Generator
昨日紹介した NUnit Test Generator を使ってみました。
※ Azure の VS2015 RTM の VM が初期言語が英語で、面倒で日本語化してないので文中のメニューとかも英語になってます。適当に置き換えて読んでください。
使い方
1. Extension をインストールする
VS の [Tools] > [Extentions and Updates] から "NUnit" で検索して Test Generator NUnit extenstion という拡張をインストールします。
2.テスト対象コードを書く
3.IntelliTest テストコードの生成
テスト対象メソッドのコンテキストメニューから [Create IntelliTest] を選ぶと「Create IntelliTest」というウインドウが開くので、 [Test Framework] から NUnit or NUnit2 を選びます。すると、テストプロジェクトと IntelliTest のベースとなるテストコードが生成されます。ここで生成されるのは各テストケースに対応したテストコードではなく、あくまでも契約を記述可能な部分だけが作成されることにご注意ください。(拡張子 .g.cs
ではなくて、.cs
だけが作成される)
4.IntelliTest テストケースの作成
テスト対象のコンテキストメニューから [Run IntelliTest] でテストケースの作成および各テストケースを実行するテストコードを作成します。作成されたテストコードの一部を抜粋します。
using Microsoft.Pex.Framework.Generated; using NUnit.Framework; using Microsoft.Pex.Framework; using ClassLibrary1; // <copyright file="Class1Test.FizzBuzzTest.g.cs" company="Microsoft Corporation">Copyright © Microsoft Corporation 2015</copyright> // <auto-generated> // This file contains automatically generated tests. // Do not modify this file manually. // // If the contents of this file becomes outdated, you can delete it. // For example, if it no longer compiles. // </auto-generated> using System; namespace ClassLibrary1.Tests { public partial class Class1Test { [Test] [PexGeneratedBy(typeof(Class1Test))] public void FizzBuzzTest533() { string s; Class1 s0 = new Class1(); s = this.FizzBuzzTest(s0, 0); PexAssert.AreEqual<string>("FizzBuzz", s); PexAssert.IsNotNull((object)s0); } // 以下略
テストメソッドに NUnit の Test
属性が付いてますし、冒頭に NUnit.Framework
名前空間も using されていますね。
Create IntelliTest ウインドウについて
コンテキストメニューに [Create IntelliTest] という項目が増えていますが、これは Test Generator NUnit extenstion によって追加された訳ではなく、 RTM で標準機能として追加されたようですね。
- Test Framework
- Test Project
- テストプロジェクトを選択します
- 新しく作ることも出来ますし、既存の IntelliTest テストプロジェクトに追加することもできます
- どうやって区別してるのか分かりませんが、自分で作ったテストプロジェクトには追加できません
- Name Format for Test Project
- テストプロジェクト名を指定します
[Project]
というプレースホルダを使うと、自動でテスト対象のプロジェクト名に置換してくれます- もちろん名前をべた書きでも OK です
- Namespace
- Name Format for Test Class
- テストクラスの名前を指定します
[Class]
という以下略
- Name Format for Test Method
Test Generator NUnit extenstion について
Create IntelliTest ウインドウの [Test Framework] に NUnit と NUnit2 が追加されます。前者は現在開発中である NUnit 3.0 が、後者は最新安定版である NUnit 2.6.4 がインストールされます。3 系と 2 系がインストールされると覚えておけばいいです。
また、自動生成されたテストをテストエクスプローラに表示するには NUnit 2 系ではテストプロジェクトに NuGet から NUnitTestAdapter を、 NUnit 3 系では 現在のところ VS 拡張である NUnit3 Test Adapter のインストールが必要です。 NUnit 3 系でも NuGet からのインストールに対応しようとはしているようなので、気長に待ちましょう。
xUnit.net Test Extensions について
簡単にしか試していませんが、 NUnit の場合と同じようにできます。