.net 中的单元和集成测试组织

本文关键字:集成测试 单元 net | 更新日期: 2023-09-27 17:56:51

解决方案中组织单元和集成测试的最佳实践是什么?

我倾向于每个实际项目有 2 个测试项目,命名为 ProjectName.Tests.UnitProjectName.Tests.Integration ,但是看起来每个代码项目会有太多的测试项目。但是,另一种方法是将所有测试放在 2 个测试项目中,这似乎更糟。

有人可以评论您(将)如何在解决方案中构建单元和集成测试吗?

.net 中的单元和集成测试组织

与围绕最佳实践的许多问题一样,答案实际上是取决于...

如果你有很多项目,每个项目都有少数几个类,这些

类的作用不大,那么为每个项目提供一个集成测试项目和一个单元测试项目似乎有点矫枉过正。

如果您正在编写一个大型基础结构,该基础结构被分解为离散区域,位于服务下,那么为每个服务创建一个集成测试项目以包含功能并有效地组织测试可能是有意义的。

如果您的每个项目都表示可以单独进行合理集成测试的离散功能,那么为每个项目创建一个集成项目可能是有意义的。

这确实取决于您的情况以及为什么要分离项目。

如果您还没有这样做,您应该考虑的另一种方法是使用 TestCategory/Traits 来区分您的测试。 这允许您将整个测试类/夹具或单个方法标记为特定类别的测试(例如数据库集成),然后在构建过程中打开/关闭这些测试。

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