C# 如何设置测试项目(名称空间、有用的帮助对象等)?

C# 如何设置测试项目(名称空间、有用的帮助对象等)?,c#,unit-testing,testing,project-management,automated-tests,C#,Unit Testing,Testing,Project Management,Automated Tests,我的团队正试图为自动化测试建立一些指导原则。具体来说,我们感兴趣的是在我们的测试项目中将存在什么类型的类,如何设置名称空间,等等。这就是我们到目前为止提出的 解决方案资源管理器中的视图 项目:MyProject.Testing 文件夹:功能A 类别:TestFixture1 类别:TestFixture2 类别:ConstantManager 类别:StateManager 类别:EntityBuilder 类别:场景生成器 我有我的测试夹具按功能组织。这基本上模仿了我的主要解决方案

我的团队正试图为自动化测试建立一些指导原则。具体来说,我们感兴趣的是在我们的测试项目中将存在什么类型的类,如何设置名称空间,等等。这就是我们到目前为止提出的

解决方案资源管理器中的视图

  • 项目:MyProject.Testing
    • 文件夹:功能A
      • 类别:TestFixture1
      • 类别:TestFixture2
    • 类别:ConstantManager
    • 类别:StateManager
    • 类别:EntityBuilder
    • 类别:场景生成器
我有我的测试夹具按功能组织。这基本上模仿了我的主要解决方案名称空间,所以如果我在我的主要项目中有类似MyProject.Dao的名称空间,那么在我的测试项目中就有MyProject.testing.Dao

我还添加了一些助手类

  • ConstantManager:存储测试期间所需的可重用常量的数据库id等
  • StateManager:管理在每次测试之前重置状态(可以将测试修改的文件替换为原始文件,重置数据库等)
  • EntityBuilder:创建可用于测试的域实体实例
  • ScenarioBuilder:从EntityBuilder中获取实体,并将它们组合到可用于多个测试的场景中。例如,这可能是填充树,或设置特定属性,等等。我认为ScenarioBuilder将继承EntityBuilder(或者完全替换EntityBuilder)
虽然我已经将ConstantManager、EntityBuilder和ScenarioBuilder显示为直接在测试项目下,但如果情况需要,每个函数(例如在功能A下)实际上可能都有这些类的特定定义


那么,我做错了什么?我应该做什么?谢谢

> P>您可能想考虑将所有单元测试项目与.UnTestEnter和所有集成测试项目一起使用.IngsialTestEngest.这意味着您的自动生成服务器可以区分哪些项目应该包含在CI生成中(单元测试项目),哪些项目应该包含在夜间生成中(单元测试和集成测试项目)。

+1感谢您的提示。到目前为止,我们的项目(和测试项目)太小了,这不是一个问题,因为测试速度很快,但它看起来像是我们应该注意的事情。那么我建议的其他东西呢。这些是大多数测试项目都有的有用类吗?这是组织测试项目的正常方式吗?