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

时间:2016-01-21 03:24:02

标签: c# unit-testing visual-studio-2015 mstest class-library

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

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

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

1 个答案:

答案 0 :(得分:5)

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

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

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

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

相关问题