web-dev-qa-db-ja.com

実行するNUnitテストを指定します

テストを実行するためのコンソールアプリケーションを作成するNUnitプロジェクトがあります。エントリポイントは次のようになります。

class Program
{
    [STAThread]
    static void Main(string[] args)
    {
        string[] my_args = { Assembly.GetExecutingAssembly().Location };

        int returnCode = NUnit.ConsoleRunner.Runner.Main(my_args);

        if (returnCode != 0)
            Console.Beep();

    }
}

この1つのテストのみを実行したい場合、引数として何を渡すことができますか?

[TestFixture]
public class EmailNotificationTest
{
    [Test]
    public void MailerDefaultTest()
    {
        Assert.IsTrue(false);
    }
}

明らかにこれはサポートされており、同じように明らかに私はそれを行う方法がわかりません。

[〜#〜]更新[〜#〜]

V3 +のように見えますが、これは--testオプションを使用して、 ドキュメント に従って可能です。

15
Jeremy Holovacs

テストを[Category("RunOnlyThis")]属性でマークしてから、この特定のカテゴリにのみ一致するテストを実行するようにNUnitに指示できます。

 /include:RunOnlyThis

コンソールランナー引数に追加する必要のある属性です。もっと ここ

12
k.m

最新バージョン(NUnit 3)では、テストをデバッグしたり、実行するテストを指定したりできます。

デバッグ

--debugオプションは、テストをデバッグするためにデバッガーを起動します。次に例を示します。

nunit3-console.exe "C:\path\to\the\tests.dll" --debug

フィルターテスト

これで、実行するテストを選択するさまざまな方法があります。最初のオプションは--test=NAMESです。このオプションと--debugを組み合わせると、次のように1つのテストのみを簡単にデバッグできます。

nunit3-console.exe "C:\path\to\the\tests.dll" --debug --test="EmailNotificationTest.MailerDeSecondTest" 

クラスに名前空間がある場合は、名前空間を忘れないでください。

--testlist=PATHオプションを使用すると、ファイルで指定されたすべてのテストを実行できます。次に例を示します。

nunit3-console.exe "C:\path\to\the\tests.dll" --debug --testlist="testnames.txt" 

実行するテストを示す--where=EXPRESSIONオプションもあります。このオプションは、以前の--test--include、および--excludeオプションを拡張または置換することを目的としています。このオプションについて詳しく知りたい場合は、 公式ドキュメント を確認してください。

16
Sergii Zhevzhyk

@Totoが言ったように、 NUnit Gui を使用すると、選択できます。

enter image description here

4
kd7

NUnitコンソールの/ runスイッチを使用して、実行するテストを指定できます。

このような:

/run:namespace.classname.functionName

例えば。

nunit-console.exe "C:\UnitTests.dll" /run:UnitTests.EmailNotificationTest.MailerDefaultTest
4
digitguy

アプリケーションにはNUnitが付属しており、アプリケーションは必要なテストを起動できます。これは本当に便利で、テストを実行するためにコードを書く必要はありません。

2
Toto