在.NET中组织单元测试和集成测试

3
在您的解决方案中,组织单元测试和集成测试的最佳实践是什么?
我倾向于每个实际项目有两个测试项目,命名为ProjectName.Tests.UnitProjectName.Tests.Integration,但这似乎会导致太多的测试项目与代码项目相对应。另一种选择是将所有测试放在两个测试项目中,但这似乎更糟糕。
请问有人能否评论一下您如何构建单元测试和集成测试的结构?

2
通常我建议为每个项目创建一个测试项目。集成测试项目通常不是针对每个项目创建的。您可以创建一个单一的集成测试项目,或者针对您正在集成测试的每个功能创建一个集成测试。 - Suresh Kumar Veluswamy
2个回答

5
与很多关于“最佳实践”的问题一样,答案真的取决于情况...
如果你有很多项目,每个项目都有几个不太起作用的类,那么为每个项目都设置一个集成测试项目和单元测试项目可能会显得过于繁琐。
如果你正在编写一个大规模的基础架构,它被分解成离散区域,坐落在服务下面,那么为每个服务设置一个集成测试项目来包含功能并有效地组织测试可能是有意义的。
如果你的项目各自代表可以合理地独立进行集成测试的离散功能,那么为每个项目设置一个集成项目可能是有意义的。
真正取决于你的情况以及为什么要分开项目。
如果你还没有这样做,你应该考虑使用TestCategories / Traits来区分你的测试。这允许你将整个测试类/固定装置或单个方法标记为特定的测试类别(例如db integration),然后在构建过程中打开/关闭这些测试。

2

我过去的做法是为解决方案中的每个代码项目创建一个文件夹。在这个文件夹中,我会创建三个项目: 1. 代码项目 2. 集成测试 3. 单元测试


这正是我正在做的,而且非常有用。 - Teoman shipahi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接