web-dev-qa-db-ja.com

Visual C#2010 Expressでの単体テスト?

Visual C#2010 Expressには単体テスト機能がありますか?

45
user128807

更新として、私は現在Visual Studio Express for Desktopを使用しています。VSスイートは2010年から完全にリモデルされており、「ビッグブラザー」をより正確に反映しています。

単体テストは組み込み機能として利用できるようになり、Visual Studio non-Expressと同じように機能します(すべての機能をテストしたわけではありません)。

1
AJD

既に述べたように、Expressバージョンにはこの機能が組み込まれておらず、アドインも許可されていませんが、外部ツール(例: NUnit

Visual Studio Express内の[ツール]メニューの[外部ツール]から実行するコマンドを設定し、必要に応じてそこからテストランナーを実行することもできます。

ここ は、VS C#2008 Expressでそれを行う方法を示すリンクです(最後までスクロールしてください)が、2010年にも当てはまると思います。

ここに新しい作業リンクがあります

38
Andy

何も組み込まれていませんが、nUnitをいつでも使用できます。

MSTestは、Proエディション以上にバンドルされています。

10
Oded

2010年には、外部アプリケーションを使用することも可能ですが、単体テストのデバッグは難しくなります。 NUnitを使用したデバッグがおそらく最善のルートです(ただし唯一のオプションではありません。 ExpressUnit を参照してください)。 this 回答を別のSOスレッドで参照してください。これは、テストプロジェクトをコンソールアプリケーションとして実行し、nunitを呼び出すことについて言及している blog にリンクしています。ライブラリdllを直接テストを起動します。

using System;

namespace RunTests
{
    static class Program
    {
        [STAThread]
        static void Main()
        {
            var args = new string[] { Assembly.GetExecutingAssembly().Location, "/run" };
            NUnit.Gui.AppEntry.Main(args);
        }
    }
}
9
VariableContent

Visual Studio Expressエディションには、プラグイン/アドインが明示的に禁止されているという制限があります。組み込みのテストソリューションは付属しておらず、アドインすることはできません。

NUnit、mspecなどのスタンドアロンテストランナーを使用し、VSEから外部で実行するための最良/唯一のオプションです。

8
STW

これはVisual Studio 2013 Expressに含まれるようになりました: http://msdn.Microsoft.com/en-us/library/dd264975.aspx

Test Explorerが表示されない場合は、Visual StudioメニューでTestを選択します、Windowsを選択し、次にTest Explorerを選択します。

enter image description here

7
matt burns

プロジェクトでMain()メソッドを使用して追加のクラスをいつでもセットアップし、プロジェクトのスタートアップオブジェクトとして選択して、そこからデバッグすることができます。より多くのテスト固有の機能を利用できないため、より複雑なタスクが実行される状況では適切でない場合がありますが、一部の単純なプロジェクトでは役立つ場合があります。プロジェクトがクラスライブラリの場合は、コンソールアプリケーションに変換し、テストが終了したら元に戻すことを検討してください。

0
user507410

NHarness at codeplexを見てください。これは、テストプロジェクトでNUnitテストフィクスチャを実行できる非常にシンプルなライブラリです。これにより、必要に応じてユニットテストをデバッグできます。

テストランナーの例(codeplexページから)は次のとおりです

    public class RunTests
    {
        public static void Main(string[] args)
        {
            TestResults results = Tester.RunTestsInClass<Tests>();

            Console.WriteLine("Tests Run: {0}", results.NumberOfResults);
            Console.WriteLine("Results {0}:PASSED {1}:FAILED", results.NumberOfPasses, results.NumberOfFails);
            Console.WriteLine("Details:");

            foreach (TestResult result in results)
            {
                Console.WriteLine("Test {0}: {1} {2}",
                                            result.MethodName,
                                            result.Result,
                                            result.Result == TestResult.Outcome.Fail ? "\r\n" + result.Message : "");
            }

            Console.ReadLine();
        }
    }

このライブラリの利点は、TestResultsクラスを使用して、実行されたテストに関する情報を取得できるため、カスタムの単体テストアプリケーションでもライブラリを使用できることです。

0
johnc

(注:私はこの投稿が古いことを知っていますが、これは誰かを助けるかもしれません)

Andyが上記で投稿したように、 NUnit を使用できます。
しかし、Andyによって投稿されたリンクの設定は、VS C#2010では機能しなくなりました。
これは、[外部ツール]ウィンドウで使用する設定です。

コマンド:C:\ Program Files(x86)\ NUnit 2.6.2\bin\nunit-x86.exe
binディレクトリにnunit.exeもあります)

引数:$(ProjectDir)$(ProjectFileName)
初期ディレクトリ:$(ProjectDir)bin/Debug/$(TargetName)$(TargetExt)

0
Jack Griffin