在哪里放置单元测试项目

时间:2010-03-30 12:37:10

标签: c# .net unit-testing

我正在考虑将单元/集成测试项目放在何处。我按照1测试项目pr。项目惯例

我可以想到3种方式,这对我来说似乎都很好,这使得它很难选择: - )

  1. 将测试项目放在Tests子文件夹下,并将其放置到它测试的项目中。
  2. 测试项目放在它测试的项目旁边的“项目”.Tests文件夹中。我相信这是Roy Osherove所推荐的。
  3. 将所有测试项目放在根目录下的子文件夹中。例如\测试\ “项目” .Tests
  4. 别的什么?
  5. 您选择什么以及为什么?

6 个答案:

答案 0 :(得分:4)

选项2是我的首选。除此之外,它只是创建新类库项目时的默认设置 - 它与生产项目位于同一个解决方案目录下。

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

答案 1 :(得分:3)

我喜欢将所有项目都放在同一级别。我只是为了简单而没有大的争论。毕竟视觉工作室显示了同一级别的所有项目。

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

答案 2 :(得分:2)

  

测试项目放在旁边   项目测试,在“项目”。测试   夹。我相信这就是罗伊   Osherove建议。

这是我个人的最爱。它是最清楚地传达意图的那个,并且如果你在一个目录中查看它们,或者有一些理由将项目分组到一个解决方案中,也可以很容易地看到哪些测试项目与哪个项目有关。

答案 3 :(得分:1)

我选择#1,这样当您结账时,您也可以进行测试。否则,测试甚至会成为事后的想法。

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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

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