【问题标题】:Should I Separate My Unit Tests and Integration Tests Into Separate Projects [closed]我应该将我的单元测试和集成测试分成单独的项目吗[关闭]
【发布时间】:2011-12-28 15:51:42
【问题描述】:

我目前正在处理一个项目,并注意到一位同事已开始将集成测试添加到单元测试文件中。我正在考虑将它们取出,并将它们放入一个新项目中。这是一个好主意吗?

【问题讨论】:

  • 视情况而定。但通常情况下,如果无需进行重大编辑就可以完成,听起来您的项目结构和/或架构可能存在问题。不仔细检查就无法判断。

标签: unit-testing integration-testing


【解决方案1】:

取决于“项目”的范围。单个项目的组件的集成测试应该在项目内。测试多个项目相互集成的测试应该是一个单独的项目。

【讨论】:

  • 好的,目前每个项目都有对应的测试项目,这些测试项目里面都有测试类。现在每个测试类都混合了集成和单元测试方法。我正在考虑将集成测试方法移出并移入一个新项目。你同意这是一件好事吗?
  • 宁可将单元测试移到代码项目中。始终使单元测试尽可能接近实际源代码。
  • 嗯,我不确定我是否喜欢使用生产代码进行测试的想法。看看这个stackoverflow.com/questions/347156/…
  • @LeighCiechanowski:这个问题是针对 C# 的。任何值得一提的构建系统都应该支持每个项目的多个可执行文件和一个check 目标,就像 automake 开箱即用一样。 C# 构建系统似乎没有,所以我会考虑你为解决损坏的构建系统链接了一个解决方法的问题。
【解决方案2】:

取决于您的测试框架和持续集成环境,以及您是否希望通过单元测试执行集成测试。

MbUnit、NUnit 和 MSTest 等测试框架支持使用类别标记测试的概念,这意味着您可以通过使用自己的类别(即“集成”)标记测试来指示哪些测试是集成测试。类别可以将两组测试保留在同一个项目中,但使用配置设置来控制在构建服务器上运行的测试集。

就个人而言,我喜欢仅在必要时将它们拆分为单独的项目。例如,如果集成测试需要他们自己的特殊项目依赖项,或者如果我想简化构建服务器的配置以便仅定期运行集成测试,我可能会拆分到他们自己的项目中。

【讨论】:

    【解决方案3】:

    我认为 int 测试和单元测试应该是单独的文件。您不知道您的 SUT 中的课程何时会被换出。单独的单元测试减少了所需的重构。

    【讨论】:

      猜你喜欢
      • 2010-09-27
      • 1970-01-01
      • 2012-10-01
      • 1970-01-01
      • 2016-10-03
      • 1970-01-01
      • 1970-01-01
      • 2016-07-23
      • 1970-01-01
      相关资源
      最近更新 更多