动态测试用例

4
我们正在使用NUnit运行我们的集成测试。其中一个测试应该始终保持相同,但采用不同的输入参数。不幸的是,我们不能使用[TestCase]属性,因为我们的测试用例存储在外部存储中。我们有动态测试用例,可以由我们的QA工程师添加、删除或禁用(未删除)。QA人员无法将[TestCase]属性添加到我们的C#代码中,他们只能将它们添加到存储中。
我的目标是从存储中读取测试用例到内存中,运行所有启用的测试用例,并报告测试用例是否失败。我无法使用“foreach”语句,因为如果测试用例#1失败,则其余测试用例将根本不会运行。我们已经有了构建服务器(CruiseControl.net),显示生成的NUnit报告,因此我想继续使用NUnit。
请问如何实现我的目标?谢谢。

1
可能是 Dynamically create tests in NUnit 的重复问题。 - Sergey Kalinichenko
1个回答

6
您可以使用 [TestCaseSource("PropertyName")\],它指定了一个属性(或方法等)用于从中加载数据。
例如,我在 Noda Time 中有一个测试案例,其中使用了所有的 BCL 时区 - 当然,这可能随时间而改变(在 Mono 上也不同),而我根本不需要更改代码。
只需使您的属性/成员将测试数据加载到集合中即可开始使用。
(我一直使用属性,但它听起来也应该与方法一起使用。)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接