2011-11-03 104 views
3

我使用Visual Studio 2008和我想能够分裂我的单元测试分为两组:如何分割单元测试成组

  1. 快速测试
  2. 更长的测试(即与互动数据库)

我只能看到一个选项来运行全部或一个,也可以运行单元测试类中的所有测试。

当我想运行一个快速测试时,有什么办法可以将它们分开或指定要运行哪些测试?

感谢

回答

7

我会区分你的单元测试分组如下:

  1. 单元测试 - 测试单的方法/类,与存根dependenices。应该很快执行,因为只有内部依赖关系。
  2. 集成测试 - 将两个或更多组件一起测试,例如您的数据访问类与实际支持的数据库。这些通常很漫长,因为您可能正在处理外部依赖项,如数据库或Web服务。但是,这些仍然可以快速测试,具体取决于您要集成的组件。这里的关键是测试的范围与单元测试不同。

我会创建单独的测试库,即MyProj.UniTests.dll和MyProj.IntegrationTests.dll。这样,您的单元测试库将比您的集成测试具有更少的依赖关系。然后指定想要运行的测试组将很容易。

如果您正在使用类似的东西,在不同时间运行测试,您可以设置持续集成服务器,因为知道组1比第二组快。例如,单元测试可以在将代码签入到存储库后立即运行,并且集成测试可以在一夜之间运行。很容易设置这样的使用Team City

+0

我们使用MyProj.Tests.Unit和MyProj.Tests.Integration,这样当我们部署时,我们可以忽略* .Tests。*。 –

8

如果你使用NUnit,你可以使用CategoryAttribute

MSTest中的等价物是TestCategory属性 - 有关如何使用它的说明,请参阅here

+0

如果您碰巧使用JetBrains中的R#,您会得到这个很酷的“单元测试会话”窗口,您可以在其中按类别对测试进行分组和运行。 http://www.jetbrains.com/resharper/webhelp/Reference__Windows__Unit_Test_Sessions.html或在Visual Studio中使用内建的“文本资源管理器”窗口时检查此项:http://blogs.msdn.com/b/visualstudioalm/archive/ 2012/11/09/how-to-manage-unit-tests-in-visual-studio-2012-update-1-part-1-using-traits-in-the-unit-test-explorer.aspx –

1

有测试列表编辑器。我现在不在我的Visual Studio计算机,所以我只会指向this答案。

+1

我最终实现了这种方式 – ediblecode