我正在寻找对我的测试进行分类的最简单方法,以便我可以单独运行它们。
我的组织将类似于以下
这样做的原因是我们所有的测试都没有演变为完全自动化。我们的大多数单元测试都是完全自动化的,而集成和系统测试则不是。但是,所有测试对于在开发人员计算机上调用仍然有用。
为简单起见,如果我们可以使用不同的属性[IntegrationTest]
或[TestCategory("Integration")]
提交不同类型的测试,那么我们会喜欢它,因此我们的构建服务器只运行我们想要的测试。
我知道nUnit有测试类别,但我们的团队喜欢在MsTest + IDE集成上获得Microsoft Stamp批准。
您的团队如何解决这个问题?
是否有提供此功能的扩展程序?
这会被内置到.Net 4.0中吗?
由于
答案 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