是否有适用于.NET的“高级”测试框架?

时间:2010-08-25 13:32:00

标签: .net visual-studio unit-testing tdd testing

我正在寻找一个允许我拥有的测试框架:

  1. 不同种类(类别)的测试。我希望能够运行所有“快速”测试或所有“慢速”测试。我知道MSTest允许你创建列表并运行然后运行它们,但我发现它很烦人并且分散注意力。我想在开发它们的时候用属性标记测试,然后就像组合框一样让我选择我想要运行的测试类型。我也知道,如果我的测试速度较慢,我可以用MSTest对它们进行排序,这样我就可以看到更快的测试结束了。这肯定只是一个“黑客”,随着你的测试越来越多,它会变得一团糟。
  2. 按顺序运行测试。当我按顺序说我并不是说他们彼此依赖时,我只是说因为我必须测试GUI我不能运行2次测试同时。
  3. 可以选择让多个测试相互依赖。这意味着如果我的测试A失败了,在某些情况下,我甚至不想尝试运行测试B或C.
  4. 在Visual Studio中为所有这些提供某种支持。我目前总是在做CTRL + B / CTRL + R,A(构建/运行测试)。所以不得不去看另一个应用程序(即使它是从VS IDE启动)每2分钟听起来不是一个好的解决方案。
  5. 有什么能够实现这一目标吗?我发现,考虑到测试和tdd的所有这些趋势,我们可以使用的工具仍然是如此原始和原始,这让我很尴尬。

6 个答案:

答案 0 :(得分:4)

MbUnit

答案 1 :(得分:3)

VS的单元测试分别为1,2和4。

  

不同种类(类别)的测试。

您可以通过添加多个“测试设置”项来创建多个测试列表,每个项都可以运行不同的配置或测试的不同子集。

  

按顺序运行测试。

您可以控制所使用的并发级别,包括将其设置为1.(这需要编辑XML文件,但在MSDN上有所涵盖。)

  

在Visual Studio中为所有这些提供某种支持。我

这很容易。

  

可以选择让多个测试相互依赖。

这是最难的,因为TDD最佳实践是测试是独立工具似乎假设这一点。

在一类测试中,保留标志并立即退出不符合条件的测试。

答案 2 :(得分:1)

如果你有resharper,你应该使用Gallio 它支持您可能选择的任何框架 它将有助于提高您的工作效率。

答案 3 :(得分:1)

使用MSTest(如果其他选项不起作用,可以提供一些帮助)

您可以拥有TestCategories(使用TestCategory属性),然后使用“测试列表编辑器”顶部的过滤器来选择您想要的内容。

您还可以通过右键单击项目/文件夹创建有序测试列表,单击顶部的新测试,这是其中一个选项。然后,您可以在批处理中添加和排序测试,它将按顺序运行它们,并且当序列中的一个失败时,可选择使其余部分失败。

我的测试一直按顺序运行,所以正如其他人提到的那样你可能只需要将并发性设置为1,但我自己还没有完成。

答案 4 :(得分:1)

NUnit的

  1. 类别 - 您可以使用[Category(“SomeName”)]标记测试夹具,然后使用类别名称在测试运行中包含/排除它们
  2. 顺序 - 这是大多数xUnit框架的默认设置。开箱即用
  3. 测试依赖关系:请查看此问题以获取更多信息 - Tests dependent on commonly used functionality with NUnit。 NUnit目前不支持 - 但请查看评论以查看是否有任何解决方法适用于您
  4. VS Integration - 由于显而易见的原因,这是MS-Test的一个给定。对于NUnit,您需要安装一些插件,例如我使用Resharper 5.1(商业支付)

答案 5 :(得分:0)

使用MSTest

对于1:不同种类(类别)的测试

如果您拥有ReSharper,则可以在测试运行中根据TestCategory对测试进行分组。 (强烈推荐ReSharper,如果你没有它。你可以免费使用它30天来试用它。)

如果不这样做,则使用[Priority(int)]属性,您可以在Visual Studios测试运行器中对其进行分组。

不幸的是,使用优先级,一次测试就不能有多个标签。