解决方案的一个或多个单元测试项目

One or more unit test projects for solution

我的解决方案中有一个控制台应用程序和另外两个 class 库项目——总共 3 个项目。

我现在想添加一个单元测试项目。我的问题是我是在解决方案中为每个 "regular project" 添加一个 "unit test project" 还是可以测试所有三个的单个单元测试项目?

换句话说,如果我的项目是 projA、projB 和 projC,我是否添加三个单元测试项目,例如projA.Tests、projB.Tests 等。或者可以处理所有三个的单个单元测试项目?

如果问题只是一个单元测试项目可以同时处理所有这三个问题吗?答案是是的但是比继续下一步我会说这取决于。就个人而言,我倾向于将所有测试放在一个项目中,每个程序集在项目中都有单独的文件夹(必要时还 sub-folders。)这使得 运行 整个集合变得容易视觉工作室。如果您有数千个测试,那么单个项目可能难以维护。我们通常将它们分开,因为我们不想将它们与我们的产品一起部署。无论您是按库还是按解决方案拆分它们,两者都有优点。

最终,您希望所有开发人员都能立即使用测试,以便开发人员知道在需要时在哪里可以找到它们。您还需要一个无障碍环境,以最小的开销编写新测试。测试还必须快速编译和执行 - 项目结构可以在所有这些中发挥作用。

您可能还需要考虑可能进行不同级别的测试,例如单元测试、集成测试或 UI 自动化测试。通过使用测试类别,在某些工具中可以分离这些类型的测试,但有时如果它们是单独的库,执行或报告会更容易。

在项目不多的小型项目中,1:1 比率通常是首选方法。