2017-03-17 69 views
1

我有四個參數的測試用例屬性:NUnit的測試用例 - 陣列作爲屬性的說法是不符合CLS

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

編譯器說:

數組作爲屬性參數是不符合CLS 。

如果我刪除一個參數,它的作品完美。所以,我不清楚爲什麼具有四個屬性的測試用例不符合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參數,也有具體的構造,而對於> 3,則默認非CLS兼容的版本,其使用object[]代替。正如編譯器所說,數組作爲屬性參數不符合CLS。

如果你需要符合CLS,你能解決這個使用TestCaseSourceAttribute代替。