【问题标题】:Custom Data Driven MSTest自定义数据驱动 MSTest
【发布时间】:2012-08-24 19:08:27
【问题描述】:
我有从 Excel 创建的 XML 电子表格文件,我需要将其用作数据驱动测试的输入。我无法在我的测试方法中使用DataSource 属性,因为使用 Oledb 提供程序解析文件时存在不一致。我想知道是否有办法像DataSource 属性那样获得嵌套测试结果?
我希望 MSTest 显示迭代的每一行的细分,而不是我捕获失败的断言异常并保留失败的集合。我当然希望测试针对每一行运行,而不是在第一个失败的断言时退出执行。
我不是在寻找坚持通过 DataSource 属性加载数据的答案。谢谢
【问题讨论】:
标签:
c#
visual-studio
unit-testing
mstest
vs-unit-testing-framework
【解决方案1】:
使用每个 TestMethods 上的 DeploymentItem 来部署每个测试所需的 XML 电子表格文件。它将部署在大会的位置。
在TestInitilize 方法中,使用Assemby 的路径将您的文件解析为您的自定义DataSource(可能是您输入数据的对象列表)。
将您的TestMethod 的代码捕获放在try/catch 块中。如果抛出异常,请使用TestContext.WriteLine 方法报告错误,或将其附加到您的自定义结果文件中(类似于this)。
使用类级别计数器并在每个 TestMethod 末尾检查计数器是否等于您的自定义数据源长度。如果不是,则将其加一并重新运行测试。