如何将单元测试拆分成组

时间:2011-11-03 11:35:52

标签: c# .net visual-studio visual-studio-2008 unit-testing

我正在使用Visual Studio 2008,我希望能够将我的单元测试分成两组:

  1. 快速测试
  2. 更长的测试(即与数据库的交互)
  3. 我只能看到一个选项来运行全部或一个,并且还可以在单​​元测试类中运行所有测试。

    当我想要进行快速测试时,有什么方法可以拆分它们或指定运行哪些测试?

    由于

3 个答案:

答案 0 :(得分:8)

如果您使用的是NUnit,则可以使用CategoryAttribute

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

答案 1 :(得分:7)

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

  1. 单元测试 - 使用存根的依赖项测试单个方法/类。应该非常快速地执行,因为只有内部依赖。
  2. 集成测试 - 将两个或多个组件一起测试,例如您的数据访问类与实际支持的数据库。这些通常是冗长的,因为您可能正在处理外部依赖项,如数据库或Web服务。但是,根据您正在集成的组件,这些仍然可以是快速测试。这里的关键是测试范围与单元测试不同。
  3. 我会创建单独的测试库,即MyProj.UniTests.dll和MyProj.IntegrationTests.dll。这样,您的单元测试库的依赖项将少于集成测试。然后,可以很容易地指定要运行的测试组。

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

    可以很容易地设置这样的内容

答案 2 :(得分:1)

有测试列表编辑器。我现在不在我的Visual Studio计算机上,所以我只想指出this回答。