2017-03-17 6 views
1

ないように私は、4つの引数を使用してテストケースの属性があります。NUnitのテストケース - アレイ属性の引数は、CLSに準拠し

[TestCase("2007", "52", "saturday", "2007/12/29")] 

をコンパイラは言う:

アレイの属性の引数としては、CLSに準拠していません。

1つの引数を削除すると、その動作は完璧です。したがって、なぜ4つの属性を持つテストケースがCLSに準拠していないのかはわかりません。私はNUnit 3.5を使用しています。

答えて

3

これは、フードの下では、NUnitのTestCaseAttributeには実際には4つの異なるコンストラクタがあるからです。

public TestCaseAttribute(object arg) 
    { 
    } 

    public TestCaseAttribute(object arg1, object arg2) 
    { 
    } 

    public TestCaseAttribute(object arg1, object arg2, object arg3) 
    { 
    } 

    //Not CLS compliant 
    public TestCaseAttribute(params object[] arguments) 
    { 
    } 

あなたが見ることができるように - 1-3パラメータについて、具体的なコンストラクタがあり、代わりにobject[]を使用して非CLSに準拠したバージョンへ> 3について、デフォルト一方。また、コンパイラによると、属性引数としての配列はCLSに準拠していません。

CLSに準拠する必要がある場合は、代わりにTestCaseSourceAttributeを使用して回避することができます。

関連する問題