MS UnitTestFramework c# 的嵌套数据源

Nested DataSource for MS UnitTestFramework c#

我正在使用 MS UnitTestFramework 库进行一些单元测试。我的一些测试使用 [DataSource] 属性来获取其数据,其中一些测试使用自定义 GetData 来获取 MTM 数据并将结果存储到自定义对象列表中,还有一些测试同时执行这两种操作。

同时使用两者的 TestMethods 使用 [DataSource] 数据作为 'parent' 数据。使用父数据的测试迭代会将其所有测试步骤放入一个循环中,该循环遍历我们的 GetData 调用返回的列表中的每个数据对象。总而言之,整个事情有点像嵌套在另一个 for 循环中的 for 循环。

我的问题是:有没有一种方法可以仅使用 DataSource 属性来实现此行为?

例如: MTM 测试用例 1 具有数据行 1 和 2。 MTM 测试用例 2 具有数据行 a、b 和 c。 我的 TestMethod 运行了 6 次:1a、1b、1c、2a、2b、2c。

(我知道我可以用 6 个 DataRow 来做一个案例,但这不是一个可扩展的解决方案。)

所以我想我有一个解决方案。这与我以前一直在做的不同,我也还没有实现它,这只是一个想法。如果我改为从数据库获取数据,我可能能够创建 tables 来存储测试用例 1 和 2 的数据,并为每个测试用例 table 提供一个视图,将其交叉连接到 'parent' 测试用例,然后让 [DataSource] 查看该视图。尚未完成研究,但如果 DataSource 允许我从存储过程中获取行,那将比视图更好。