我試圖使用TestCaseSource
在NUnit的與的參數之一是一個數組測試用例顯示名稱
private static readonly object[] ReturnChopCases =
{
new TestCaseData(3, new List<int> {}).Returns(-1),
new TestCaseData(3, new List<int> {1}).Returns(1),
new TestCaseData(1, new List<int> {1,2}).Returns(1),
};
[TestCaseSource("ReturnChopCases")]
public int test_chop(int SearchNumber, int[] SearchArray)
{
return Chopper.Chop(3, SearchArray);
}
問題運行多個測試是在測試運行中顯示的名稱(我使用NUnit測試適配器)是相當無用的,它們全部顯示爲test_chop(0,System.Int32[])
或者如果使用List
然後test_chop(0,System.Collections.Generic.List`1[System.Int32])
。
如何保留一個相當可讀的測試,並給測試運行者的測試提供一個有用的測試名稱?我嘗試了一些東西,但我仍然得到上面提到的名稱。
如果你使用'.SetName(「你的名字」)',你可以明確地命名測試。你可能正在尋找更自動化的東西。 – 2014-11-14 15:50:30
是的,我真的很驚訝它沒有做更好的特別與數組。 '.SetName(「」)'看起來是最好的選擇,或者我可以編寫一個方法來傳入這些測試的名稱。 – 2014-11-15 13:01:14