2012-03-29 165 views
4

我們使用NUnit來運行我們的集成測試。其中一項測試應該始終保持不變,但採用不同的輸入參數。不幸的是,我們不能使用[TestCase]屬性,因爲我們的測試用例存儲在外部存儲器中。我們有動態測試用例,可以由我們的QA工程師添加,刪除或禁用(不刪除)。 QA人員無法將[TestCase]屬性添加到我們的C#代碼中。他們所能做的就是將它們添加到存儲中。動態測試案例

我的目標是將測試用例從存儲器讀入內存,使用所有啓用的測試用例運行測試,報告測試用例是否失敗。我不能使用「foreach」語句,因爲如果測試用例#1失敗,那麼其餘的測試用例根本就不會運行。我們已經有了生成NUnit報告的構建服務器(CruiseControl.net),因此我想繼續使用NUnit。

你能指出一個辦法,我該如何實現我的目標? 謝謝。

+1

的可能重複[動態創建在NUnit的測試(http://stackoverflow.com/questions/ 866816 /動態創建的測試功能於NUnit的) – dasblinkenlight 2012-03-29 16:27:48

回答

6

您可以使用[TestCaseSource("PropertyName")\]指定要從中加載數據的屬性(或方法等)。

例如,我有一個test case in Noda Time,它使用所有BCL時區 - 當然可以隨時間改變(而且在Mono上不同),而根本不改變代碼。

只需讓您的物業/會員將測試數據加載到集合中,即可離開。

(我正好一直使用的特性,但它聽起來像它應該很好地工作方法了。)