【问题标题】:Create test programmatically以编程方式创建测试
【发布时间】:2019-05-28 18:45:25
【问题描述】:

快速提问: 我可以在 Visual Studio 中以编程方式创建测试并将它们显示到 Test Explorer 中吗?可行吗?

我正在使用Data driven tests 的逻辑,因此我实际上可以进行所有测试,但它们仅显示在测试资源管理器中的一个测试中,因为此方法仅使用一个[TestMethod]

那么有没有办法在以下逻辑中做某事:

foreach(item in list)
{
     // Create a "[TestMethod]" that will be displayed in the Test Explorer
}

"foreach" 已经用Data driven tests 完成了,但也许还有另一种方法可以循环浏览我的数据并为每个条目创建一个测试? 谢谢:)

【问题讨论】:

  • 只是我没有误解你,你想以编程方式创建代码吗?还有一个minimal reproducible example 会很好
  • 嘿MindSwipe!问题是我不知道如何编写代码,所以我不认为我可以添加一些有用的代码(我会尝试)^^ 是的,以编程方式创建代码可能是一种解决方案!
  • 有一篇关于以编程方式编译代码的 msdn 文章here。 Ypu 可能还想查看Roslyn scripting apiThis关于动态代码生成和编译的文章也有帮助
  • 非常感谢!我会调查的! :D

标签: c# testing


【解决方案1】:

如果您使用 MSTEST 进行测试,则必须编写自定义数据源。 然后您的测试将在测试资源管理器中显示为多个测试。

https://docs.microsoft.com/en-us/visualstudio/test/how-to-create-a-data-driven-unit-test?view=vs-2019

如果是 NUnit,您可以使用 TestCase 属性此行为

http://nunit.org/docs/2.5/testCase.html

如果是 XUnit,您可以使用 Theory 和 InlineData 来实现此行为

https://docs.microsoft.com/en-us/dotnet/core/testing/unit-testing-with-dotnet-test#adding-more-features

【讨论】:

  • 谢谢!我认为这是我们可以在不以编程方式创建代码的情况下获得的最接近的结果
猜你喜欢
  • 1970-01-01
  • 2016-04-24
  • 2014-05-01
  • 2019-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-28
相关资源
最近更新 更多