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

Sam*_*Sam 6 c# unit-testing mstest class-library visual-studio-2015

在我的解决方案中,我有一个控制台应用程序和另外两个类库项目 - 共计3个项目.

我想现在添加一个单元测试项目.我的问题是,我在解决方案中的每个"常规项目"中添加一个"单元测试项目",还是可以测试所有三个单元测试项目?

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

Moh*_*ava 5

如果问题只是单个单元测试项目可以处理所有三个?答案是肯定的,但不是继续下一步我会说这取决于.就个人而言,我倾向于将所有测试放在一个项目中,在项目中为每个程序集添加单独的文件夹(根据需要加上更多的子文件夹.)这样可以在VisualStudio中轻松运行整个集合.如果您有数千个测试,那么单个项目可能难以维护.我们通常将它们分开,因为我们不想将它们与我们的产品一起部署.无论你是按照每个库还是每个解决方案将它们分开,两者都有优点.

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

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

在没有很多项目的小项目中,1:1的比例通常是首选方法.