2

テストデータを取り込むテストがあります。nunit コンソール アプリを使用してテストを実行する場合、使用するデータを指定する方法はありますか?

例えば:

[Test, TestCaseSource(typeof(TestData))]
public void ATest(string param1, int param2)

public class TestData : IEnumerable
{
    public IEnumerator GetEnumerator()
    {
        yield return new object[] { "blah1 blah1", 1};
        yield return new object[] { "blah2 blah2", 2};
    }
}

テストデータ ["blah2 blah2", 2] のみで ATest を実行できるようにしたいと考えています。次のように実行すると:

nunit3-console.exe Tests.dll --test=ATest --workers=1 --noresult

2回実行されます。

4

2 に答える 2

0

とにかく走れ...

nunit3-console.exe Tests.dll --test ATest("blah2 blah2", 2)

また

nunit3-console.exe Tests.dll --「test~=blah2」

その文字列がすべてのテストで一意である場合。

最初のものは、オペレーティング システムによっては、引用符のエスケープが必要になる場合があることに注意してください。

于 2016-05-31T22:37:15.527 に答える
0

これを行う 1 つの方法は、TestCaseData代わりにオブジェクトを返すことです。

このようなもの: (テストされていないため、構文が少しずれている可能性があります!)

[Test, TestCaseSource(typeof(TestData))]
public void ATest(string param1, int param2)

public IEnumerator GetEnumerator()
{
    yield return new TestCaseData("blah1 blah1", 1).SetName("FirstTest");
    yield return new TestCaseData("blah2 blah2", 2).SetName("SecondTest");
}

最初のテストを実行するには、次のコマンド ラインを使用します。

nunit3-console.exe Tests.dll --test=YourNameSpace.ATest.FirstTest --workers=1 --noresult

何をしているかによっては、名前よりもカテゴリを設定する方が適している場合があります。ドキュメント ページには、利用可能なものが表示されます: https://github.com/nunit/docs/wiki/TestCaseData

于 2016-05-31T19:32:40.377 に答える