Visual studio VisualStudio中单元测试的组织

Visual studio VisualStudio中单元测试的组织,visual-studio,unit-testing,mstest,organization,project-organization,Visual Studio,Unit Testing,Mstest,Organization,Project Organization,我目前正在为项目中的每个程序集创建一个成对的单元测试程序集,它们都位于同一文件夹中 MyProject/MyProject.csproj MyProject.Test/MyProject.Test.csproj 看看开源项目,我看到一些较小的项目将所有测试放在一个程序集中,而另一个则像我一样将其拆分。我正在处理一个大型解决方案,所以将所有测试放在一个项目中是非常疯狂的 我当前有msbuild逻辑来对所有*.Test.csproj文件运行测试。如果我把所有的测试放在不同的文件夹中,我就不需要这

我目前正在为项目中的每个程序集创建一个成对的单元测试程序集,它们都位于同一文件夹中

  • MyProject/MyProject.csproj
  • MyProject.Test/MyProject.Test.csproj
看看开源项目,我看到一些较小的项目将所有测试放在一个程序集中,而另一个则像我一样将其拆分。我正在处理一个大型解决方案,所以将所有测试放在一个项目中是非常疯狂的

我当前有msbuild逻辑来对所有*.Test.csproj文件运行测试。如果我把所有的测试放在不同的文件夹中,我就不需要这样做了

只是想知道是否有什么好的理由可以用某种方式做事


谢谢

我做了同样的事情,只是每个项目都在同一根文件夹下自己的文件夹中。 大致如下:

解决方案文件夹

  • 项目文件夹
  • ProjectA.Test文件夹
  • 项目B文件夹
  • ProjectB.Test文件夹
我使用相同的方法,但是我更改了每个测试项目的默认名称空间,以匹配生产项目的名称空间。因此,类
X.Y.Foo
的测试是在
X.Y.FooTest
中进行的,而不是
X.Y.Test.FooTest
——这意味着您需要更少的使用指令,并且通常会使事情更简单

我之所以希望将这两个测试放在不同的项目中,主要是为了避免将测试包含在生产库中,或是为了避免必须提供未经测试的库。使用单独的项目结构,您可以对构建的任何对象运行单元测试。它还使只查看生产类变得更容易,而不需要查看两倍多的文件(当获得库的“感觉”时)


最后,不要忘记,如果您在测试时需要访问
内部
成员,那么总会有一个独立的测试项目。

我总是为每个项目提供一个单独的测试项目。部分原因很简单,我喜欢it的组织,但我也经常遇到这样的情况:我决定将一个库分解为它自己的解决方案,以便它可以被其他解决方案重用。在这些情况下,让库项目有自己的独立测试项目(而不是单个项目中的所有测试)可以更容易地分解库。

我建议尽可能减少单元测试项目。原因是,您创建的每个文件都会增加至少10秒的编译时间。在一个大项目中,它开始累积

以下是我使用的目录结构:

项目名称/分支机构/主干/项目/代码/代码项目1
项目名称/分支机构/主干/项目/代码/代码项目2
项目名称/分支机构/主干/项目/代码/代码项目3
项目名称/分支/主干/项目/测试/测试项目1
项目名称/分支/主干/依赖项 项目名称/原型
项目名称/

在testproject1中,有以下目录结构:

代码项目1/
代码项目2/
codeproject2/web
codeproject2/web/mvc
代码项目3/

codeproject3/支持

这里有一个类似的问题:)这是我们办公室的新方案。