【问题标题】:Can I create a unit test at runtime in C# using reflection?我可以在 C# 中使用反射在运行时创建单元测试吗?
【发布时间】:2014-04-02 23:48:07
【问题描述】:

我有一个场景,我需要在运行时基于脚本创建测试。

我在一个文本文件中定义了一组需要解释的场景,每个场景都应该在 nunit 下作为单元测试运行。

我创建了一个通用的 IntegrationTestRunner 来读取数据并为定义的每个场景运行一个大型测试。这很好用。

然而,每个场景都应该是它自己的单元测试似乎很有意义。

有没有办法在运行时使用反射动态创建基于 nunit 的单元测试?

谢谢!

【问题讨论】:

  • 既然它已经在使用一个巨大的,你不能重构并创建一个带有测试名称和结果的测试 POCO 以用于更通用的方法吗?您能否详细说明“应该是自己的单元测试”是什么意思?听起来您已经拥有了所需的一切。只是缺少一些分组。
  • 我可以——但是预期的结果可能会改变。将此视为 BDD/集成测试的 SpecFlow 的穷人版本。话虽如此 - 将所有内容硬编码为标准对象是不合适的(至少现在看起来是这样。)
  • 你不想使用TestCaseSource
  • 我不知道 TestCaseSource 存在。我想这就是我要找的。谢谢:)

标签: c# .net reflection nunit


【解决方案1】:

创建一个从文件中读取所有测试用例并创建TestCaseData 对象的类会更快更容易(参见this page)。您可以通过TestCaseData 上的Name 属性设置每个测试用例的名称。

【讨论】:

  • 谢谢——这就是我要找的。​​span>
猜你喜欢
  • 2011-07-09
  • 1970-01-01
  • 2015-08-02
  • 1970-01-01
  • 1970-01-01
  • 2011-01-13
  • 2013-09-14
  • 2019-10-22
  • 1970-01-01
相关资源
最近更新 更多