2016-06-28 3 views

答えて

3

絶対に!

渡す必要があるパラメータの量が限られている場合は、これらを通常の[TestFixture]属性に入れて、TestFixtureのコンストラクタに渡します。例えば

[TestFixture("hello", "hello", "goodbye")] 
[TestFixture("zip", "zip", "zap")] 
public class ParameterizedTestFixture 
{ 
    private string eq1; 
    private string eq2; 
    private string neq; 

    public ParameterizedTestFixture(string eq1, string eq2, string neq) 
    { 
     this.eq1 = eq1; 
     this.eq2 = eq2; 
     this.neq = neq; 
    } 

このバージョンでは、2つの異なるパラメータセットを使用してテストフィクスチャを2回実行します。 (Docs

さらに多くのパラメータがある場合は、同じ方法で動作しますが、属性で指定された明示性とは異なり、静的メソッドでパラメータを計算できます。[TestFixtureSource]を参照してください。このような(Docs)何か:あなたは実行時にでパラメータを渡す必要がある場合

[TestFixtureSource(typeof(FixtureArgs))] 
public class MyTestClass 
{ 
    public MyTestClass(string word, int num) { ... } 

    ... 
} 

class FixtureArgs: IEnumerable 
{ 
    public IEnumerator GetEnumerator() 
    { 
     yield return new object[] { "Question", 1 }; 
     yield return new object[] { "Answer", 42 }; 
    } 
} 

最後に、これは、NUnitののV3.4の新--paramsコマンドラインオプションを通じても可能です。これはまだ文書化されていないようですが、NUnitのコンソールコマンドラインに--params:X=5;Y=7"の形式で渡すことができます。その後、TestContext.Parametersクラスから検索できます。

+0

あなたはNUnitの2 TestFixtureSourceを使用している場合、クリスは言及してすべてのものの、唯一のTestFixture属性が利用可能であることを注意NUnitの3でTestParametersものが来る、それはあなたが別の値を渡すことはできませんので、明らかにわずかに異なっています異なる器具。全体の実行に有効な一般的なパラメータを提供します。 – Charlie

関連する問題