如何设置测试项目(命名空间,有用的辅助对象等)?

时间:2010-12-16 18:02:45

标签: c# unit-testing testing project-management automated-tests

我的团队正在尝试为自动化测试制定一些指南。具体来说,我们感兴趣的是我们的测试项目中将存在哪些类型的类,如何设置命名空间等等。这是我们到目前为止所提出的。

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

  • 项目:MyProject.Testing
    • 文件夹:功能A.
      • 类:TestFixture1
      • 类:TestFixture2
    • 类:ConstantManager
    • 类:StateManager
    • 类:EntityBuilder
    • 类:ScenarioBuilder

我按功能组织了我的测试装置。这基本上模仿了我的主要解决方案命名空间,所以如果我在我的主项目中有MyProject.Dao作为命名空间,在我的测试项目中我有MyProject.Testing.Dao。

我还添加了一些辅助类。

  • ConstantManager :为测试期间所需的可重用常量存储数据库ID等
  • StateManager :管理在每次测试之前重置状态(可能正在替换使用原始测试修改的文件,重置数据库等)
  • EntityBuilder :创建可用于测试的域实体实例
  • ScenarioBuilder :从EntityBuilder中获取实体,并将它们组合到可以重复用于多个测试的场景中。例如,这可能是填充树,或设置特定属性等。我认为ScenarioBuilder将继承EntityBuilder(或者可能完全替换EntityBuilder)

虽然我已经将ConstantManager,EntityBuilder和ScenarioBuilder显示为直接位于测试项目下,但实际上可能存在每个函数的这些类的特定定义(例如,在功能A下),如果情况需要它。

那么,我做错了什么,我该怎么办?谢谢!

1 个答案:

答案 0 :(得分:3)

您可能需要考虑使用.UnitTests对所有单元测试项目进行后缀,并使用.IntegrationTests考虑所有集成测试项目。这意味着您的自动构建服务器可以区分哪些项目应该包含在CI构建中(单元测试项目),哪些应该包含在每晚构建中(单元测试和集成测试项目)。