6

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

我的组织会像下面

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

这样做的原因是我们所有的测试还没有进化成完全自动化了。我们大部分单元测试都是完全自动化的,而集成系统测试都没有。但是,所有测试对于在开发人员机器上调用仍然有用。

为了简单起见,我想,如果我们可以只承诺我们的不同类型的测试具有鲜明的属性[IntegrationTest][TestCategory("Integration")]所以我们构建服务器只运行我们想要的测试。

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

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

由于

回答

1

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

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

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

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

请注意,此战略将与MSTest任何其他测试框架,您可能会决定使用在未来,我会考虑一个额外的好处。

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)虽然不是该领域的预期用途,但它可以实现您想要的结果