1
我有四個參數的測試用例屬性:NUnit的測試用例 - 陣列作爲屬性的說法是不符合CLS
[TestCase("2007", "52", "saturday", "2007/12/29")]
編譯器說:
數組作爲屬性參數是不符合CLS 。
如果我刪除一個參數,它的作品完美。所以,我不清楚爲什麼具有四個屬性的測試用例不符合CLS。我正在使用NUnit 3.5。
我有四個參數的測試用例屬性:NUnit的測試用例 - 陣列作爲屬性的說法是不符合CLS
[TestCase("2007", "52", "saturday", "2007/12/29")]
編譯器說:
數組作爲屬性參數是不符合CLS 。
如果我刪除一個參數,它的作品完美。所以,我不清楚爲什麼具有四個屬性的測試用例不符合CLS。我正在使用NUnit 3.5。
這是因爲,在引擎蓋下,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代替。