对MsTest案例进行分类

时间:2009-10-14 20:57:23

标签: visual-studio-2008 unit-testing build-process build-automation mstest

我正在寻找对我的测试进行分类的最简单方法,以便我可以单独运行它们。

我的组织将类似于以下

  • 单元测试
  • 集成测试
  • 系统测试

这样做的原因是我们所有的测试都没有演变为完全自动化。我们的大多数单元测试都是完全自动化的,而集成系统测试则不是。但是,所有测试对于在开发人员计算机上调用仍然有用。

为简单起见,如果我们可以使用不同的属性[IntegrationTest][TestCategory("Integration")]提交不同类型的测试,那么我们会喜欢它,因此我们的构建服务器只运行我们想要的测试。

我知道nUnit有测试类别,但我们的团队喜欢在MsTest + IDE集成上获得Microsoft Stamp批准。

您的团队如何解决这个问题? 是否有提供此功能的扩展程序?
这会被内置到.Net 4.0中吗?

由于

3 个答案:

答案 0 :(得分:3)

您是否查看了测试列表功能?单击Test -> Windows -> Test List Editor以显示用于管理测试列表的UI。右键单击List of Tests,然后选择New Test List为其命名并保存。然后将测试拖到新组中,创建可以一起运行的All Tests子集。

另一种选择是使用Test View工具窗口的过滤器功能来选择具有相似特征的测试。它将匹配部分,因此您可以切换到Test Name并输入类似“Asp”的内容以匹配包含该字符串的所有测试,然后通过选择所有已过滤的项目来一起运行结果。缺点是您可能需要重命名测试。

沿着同样的路线,并且更接近您的想法,您可以在Test View窗口中右键单击测试,选择Properties并填充Description属性或按照您的建议填写使用Description属性装饰测试。之后您可以使用先前的方法来过滤测试(这次是对Description的过滤)虽然不是该字段的预期用途,但它可以实现您想要的结果

答案 1 :(得分:1)

这些基本上是不同类型的测试,因此应该放在不同的项目中。

将集成测试和单元测试分开是有很多充分理由的,在这种情况下它也会有所帮助。

  • 每个接受测试的类库都应该有一个(或多个)相关的单元测试项目。
  • 集成测试应该分成一个(或多个)单独的测试项目,以便您可以根据需要进行更改。

您可以拥有包含某些解决方案文件的不同解决方案文件,但根据您希望运行的测试套件的类型排除其他测试项目。

请注意,此策略适用于MSTest您将来决定使用的任何其他测试框架,我认为这是额外的好处。

答案 2 :(得分:1)

是的,.NET 4.0 Beta 2中有一个TestCategory属性(在RTM中不会排除它,因为Beta 2是功能完整的AFAIK)

http://msdn.microsoft.com/en-us/library/ms182489%28VS.100%29.aspx