2012-03-29 155 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上不同),而根本不改变代码。

只需让您的物业/会员将测试数据加载到集合中,即可离开。

(我正好一直使用的特性,但它听起来像它应该很好地工作方法了。)