在解决方案中构建单元测试的最佳方法是什么?

时间:2010-01-11 09:23:54

标签: .net visual-studio unit-testing structure

我正在使用Visual Studio 2008开发一个C#.net项目,所以我的问题专门针对这种情况。但是,问题应该与许多其他环境相同,所以我很乐意听到类似环境中人们的意见。

我的解决方案是在几个项目中组织的。所有这些都有一些属于单位测试。有几种方法可以构建测试,我觉得处理这个问题的最好方法是有一个相应的“ .Tests ” - 项目项目。即我有项目:

MyApp.Model
MyApp.Utils

给我相应的测试项目;

MyApp.Model.Tests
MyApp.Utils.Tests

这非常好地包含了所有长期合并为一个项目的测试,为每个“组”测试提供一个程序集。我觉得这是一段时间以来最好的方式,但随着应用程序的增长,每次添加一个新项目时我会得到2个新项目而不是一个。现在我认为它开始变得混乱,我正在考虑添加一个MyApp.Tests项目来保存我的所有测试。在这个项目中,测试仍然可以通过良好的文件结构很好地构建。

因此;人们如何构建他们的测试?

3 个答案:

答案 0 :(得分:2)

对于每个项目,单独的测试项目,即Project.Tests。然后我将所有测试项目存储在一个Solution Folder中,即“测试项目”。

答案 1 :(得分:1)

所有测试的1个项目。

然后是文件夹&名称空间集成/单元/回归=> project1 / project2 / project2。

配置您的测试运行器以仅运行单元测试(即 - 通过命名空间),就是这样! 更快的构建时间,但仍然保证了良好的结构化解决方案(当然,这种方法可能不合适,总是存在排除)。

答案 2 :(得分:1)

我通常遵循与此相同的结构。它提供了一个很好的一致模式,您可以直接在解决方案资源管理器中测试的项目下获得相应的测试。使导航变得容易,并找出测试的位置以及测试的代码。还可以让其他熟悉这种结构的人更容易进入您的代码。

如果您有太多项目的问题,您应该更积极地使用文件夹。将项目(及其测试)分组到命名良好且结构良好的文件夹中。