テストを実行するためのコンソールアプリケーションを作成する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
オプションを使用して、 ドキュメント に従って可能です。
テストを[Category("RunOnlyThis")]
属性でマークしてから、この特定のカテゴリにのみ一致するテストを実行するようにNUnitに指示できます。
/include:RunOnlyThis
コンソールランナー引数に追加する必要のある属性です。もっと ここ 。
最新バージョン(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
オプションを拡張または置換することを目的としています。このオプションについて詳しく知りたい場合は、 公式ドキュメント を確認してください。
@Totoが言ったように、 NUnit Gui を使用すると、選択できます。
NUnitコンソールの/ runスイッチを使用して、実行するテストを指定できます。
このような:
/run:namespace.classname.functionName
例えば。
nunit-console.exe "C:\UnitTests.dll" /run:UnitTests.EmailNotificationTest.MailerDefaultTest
アプリケーションにはNUnitが付属しており、アプリケーションは必要なテストを起動できます。これは本当に便利で、テストを実行するためにコードを書く必要はありません。