Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 用于单元测试的单独visual studio解决方案?_Visual Studio_Unit Testing - Fatal编程技术网

Visual studio 用于单元测试的单独visual studio解决方案?

Visual studio 用于单元测试的单独visual studio解决方案?,visual-studio,unit-testing,Visual Studio,Unit Testing,我有一个VisualStudio解决方案,包含大约18个项目。我想为这些项目编写单元测试(通过创建一个包含针对每个源项目的单元测试的测试项目) 我应该使用包含所有测试项目的单独解决方案吗?或者我应该使用Visual Studio 2008的分区解决方案方法并为所有测试项目创建子解决方案吗?将单元测试放在一个单独的解决方案中似乎会产生问题。从本质上讲,单元测试必须能够引用它们正在测试的类型(类)。如果在一个单独的解决方案中,那么它意味着一个二进制关联。这看起来很“困难” 因此,为了调查问题的原因,

我有一个VisualStudio解决方案,包含大约18个项目。我想为这些项目编写单元测试(通过创建一个包含针对每个源项目的单元测试的测试项目)


我应该使用包含所有测试项目的单独解决方案吗?或者我应该使用Visual Studio 2008的分区解决方案方法并为所有测试项目创建子解决方案吗?

将单元测试放在一个单独的解决方案中似乎会产生问题。从本质上讲,单元测试必须能够引用它们正在测试的类型(类)。如果在一个单独的解决方案中,那么它意味着一个二进制关联。这看起来很“困难”

因此,为了调查问题的原因,并希望提供一些帮助,我将把我的单元测试放在相同的解决方案中:

  • 项目引用。我喜欢将单元测试项目命名为.tests,其中是包含被测试类型的生产程序集的名称。这样,它们在VS中就彼此相邻(按字母顺序)

  • 随着TDD的开发,我需要在生产代码和单元测试之间快速切换。这是关于编写代码,而不是关于代码后测试

  • 我可以选择解决方案窗格顶部的解决方案节点并说“运行所有测试”(我使用Resharper()

  • 构建场(TeamCity)总是在所有提交上运行所有测试。在一个解决方案中使用所有测试更容易

当我写这篇文章的时候,我想知道为什么要把它们放在另一个解决方案中。单元测试在解决方案和生产代码之外没有任何意义

也许你可以解释为什么你会问这个问题。你能看到他们在同一个解决方案中存在的问题吗?18个项目对我来说似乎不多。我所研究的解决方案还有很多……但是如果使用Resharper(为什么你不这么做?),你需要足够的内存


希望这能有所帮助。

事实上,我的解决方案中的项目规模很大,visual studio需要花费大量时间来加载完整的解决方案。更新intelli sense是另一个需要足够时间的问题。此外,我需要将代码与单元测试分开,这样当开发人员需要编写单元测试时,他/她只能工作在包含单元测试的解决方案上。所以我可以帮助你量化“非常大”。这里的多个答案取决于什么是“非常大”。