2010-03-30 110 views
8

我在考虑在哪里放置单元/集成测试项目。我遵循1个测试项目公关。项目约定单元测试项目放在哪里

我能想到的3种方式,这一切似乎都对我很好,这使得它一种很难选择:-)

  1. 测试项目下的测试放在子文件夹中的项目它试验。
  2. 测试项目放在它测试的项目旁边,位于“项目”.Tests文件夹中。我相信这是Roy Osherove推荐的。
  3. 将所有测试项目放入根目录下的子文件夹中。例如\ Tests \“project”。测试
  4. 还有别的吗?

你选择什么,为什么?

回答

1

我会和#1一起去,这样当你完成项目结账时,你也有测试。否则,测试甚至会变得事后再想。

3

我喜欢让所有项目在物理上处于同一级别。我没有太大的争议,只是为了简单。毕竟Visual Studio显示同一级别的所有项目。

.../Project/Project.Web/ 
.../Project/Project.Model/ 
.../Project/Project.DataAccess/ 
.../Project/Project.UnitTest/ 
etc
4

选项2是我的首选。除了其他任何东西,它只是您创建新的类库项目时的默认值 - 与生产项目位于同一解决方案目录下。

为了反驳关于在没有测试的情况下签出项目的争论,我发现仅仅检出一个项目而不是整个解决方案相对来说比较少见。如果您是“基于项目”而不是“基于解决方案”的商店,那可能会改变一切。

2

测试项目投产旁边 项目,检测所“项目” .Tests 文件夹。我相信这是奥谢罗夫推荐的Roy 。

这是我个人的最爱。它能够最清楚地表达意图,并且可以轻松一目了然地查看哪些测试项目适用于哪些项目(如果您正在目录中查看它们),还是有理由将项目分组为单个解决方案。

0

Visual Studio 2010 Asp.Net MVC解决方案中的默认设置是同一解决方案中的不同项目。当涉及到所有引用的测试编译时,这是一个很大的帮助。

0

我相信选项2是最好的选择。测试是记录代码的好方法。他们明确了方法和类的语义。程序员应该很容易跳到测试代码中寻找他觉得可疑的某种方法。

另一方面,将测试代码保存在同一个项目中可能会使编译后的二进制输出变大,并强制项目只具有测试代码所需的依赖关系。

相关问题