2010-01-11 101 views
1

我正在使用Visual Studio 2008的C#.net项目,所以我的问题是专门针对这种情况。但是,这个问题应该与其他许多环境相同,所以我很乐意听到类似环境中的人们的意见。在解决方案中构建单元测试的最佳方式是什么?

我的解决方案是在几个项目中组织的。所有这些都有一些所有单元测试。有几种方法可以构建测试,我认为处理这个问题的最好方法是有一个对应的“。测试” - 项目pr项目。即我有这些项目:

MyApp.Model 
MyApp.Utils 

给我相应的测试项目;

MyApp.Model.Tests 
MyApp.Utils.Tests 

这非常好地包装了所有测试,将所有测试一起放入一个项目中,为每个“测试组”组合一个组件。我觉得这是一段时间内最好的方式,但随着应用程序的增长,我每次添加一个新项目时都会得到2个新项目,而不是每个项目。现在我认为它开始变得混乱,我正在考虑添加一个单独的项目来保存我所有的测试。这个项目中的测试仍然可以很好地结构化,并具有良好的文件结构。

所以;人们如何构建他们的测试?

回答

2

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

+0

我使用相同的方法。当解决方案开始让许多项目变得杂乱无章时,解决方案文件夹是组织它,测试或其他方式的好方法。 – jonsb 2010-01-11 09:49:22

+0

其实我并不知道解决方案文件夹。这绝对是我正在寻找的!将有一个去吧。谢谢! – stiank81 2010-01-11 11:40:38

+0

确认。解决方案文件夹正是我所需要的!如果我想在一个新的解决方案中重用一些项目但不是全部,这也可以防止单个测试项目的问题。我需要一个全新的测试项目,与其他解决方案共享一些测试 - 而不是像我可以使用解决方案文件夹那样重复使用相关项目。谢谢! – stiank81 2010-01-11 12:22:29

1

1个项目为全部测试。

然后来到文件夹& namespaces integration/unit/regression =>然后project1/project2/project2。

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

1

我通常遵循与你在这里相同的结构。它提供了一个很好的一致模式,您可以直接在解决方案资源管理器中测试的项目下获得相应的测试。可以轻松浏览并找出测试的位置以及测试代码的位置。对于熟悉这种结构的其他人来说,也更容易进入你的代码。

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

+0

并且“将文件夹及其测试分组到文件夹中”您指的是解决方案文件夹?你是否为每个“项目”建议一个文件夹,包含项目本身及其相应的测试项目?因此一个文件夹用于MyApp.Utils和MyApp.Utils.Tests? – stiank81 2010-01-11 11:46:47

+1

解决方案文件夹,是的,但不是每个项目一个文件夹。我们通常将具有共同目的或域的项目集中在文件夹中。即一个用于GUI组件的文件夹,另一个用于域对象,一个用于数据库相关的东西等。 – erikric 2010-01-11 11:56:46

相关问题