动态测试用例

时间:2012-03-29 16:21:29

标签: nunit automated-tests testcase

我们正在使用NUnit来运行我们的集成测试。其中一个测试应始终相同,但采用不同的输入参数。不幸的是,我们无法使用[TestCase]属性,因为我们的测试用例存储在外部存储中。我们有动态测试用例,我们的QA工程师可以添加,删除或禁用(不删除)。 QA人员无法将[TestCase]属性添加到我们的C#代码中。他们所能做的就是将它们添加到存储中。

我的目标是将测试用例从存储读入内存,使用所有已启用的测试用例运行测试,报告测试用例是否失败。我不能使用“foreach”语句,因为如果测试用例#1失败,那么其余的测试用例将根本不运行。我们已经有了生成NUnit报告的构建服务器(CruiseControl.net),因此我想继续使用NUnit。

你能指出一种如何实现目标的方法吗? 谢谢。

1 个答案:

答案 0 :(得分:6)

您可以使用[TestCaseSource("PropertyName")\]指定从中加载数据的属性(或方法等)。

例如,我有一个使用所有BCL时区的test case in Noda Time - 当然可能随时间而变化(Mono上也不同),而我根本不更改代码。

只需让您的属性/成员将测试数据加载到一个集合中,然后就可以了。

(我碰巧总是使用属性,但听起来它也适用于方法。)