[讨论]是否将单元测试文件和源文件放在一起

Posted xuld

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[讨论]是否将单元测试文件和源文件放在一起相关的知识,希望对你有一定的参考价值。

目前根据习惯和创作时间,单元测试和源文件的代码都是分开的。

engine/
  classes/
    Elgg/
      Class.php
  tests/
    phpunit/
      Elgg/
        ClassTest.php

是否可以考虑将它们放在一起:

engine/
  classes/
    Elgg/
      Class.php
      ClassTest.php

好处:

  • 可以很清晰地知道哪些文件缺少测试。
  • 可以快速在源文件和单元测试文件之间跳转,而不需要切换文件夹。
  • 遵循了需要一起修改的代码放在一起的原则,方便修改源码时同步修改单元测试文件。
  • 在移动、拷贝源码时可以轻松地同时处理单元测试代码。

坏处:

  • 将单元测试代码也作为源码处理,有些工具会出现问题,比如有些 IDE 会将单元测试里的代码提示出来。
  • 很少有其它项目这么做。
  • 在搜索源码时必须过滤单元测试的代码。
  • 似乎仅仅为了切换文件方便而增加了其它很多的工作量。
  • 如果单元测试和源码不是一一对应则不容易处理。

结论:

  不要这么做。

参考链接

https://github.com/Elgg/Elgg/issues/7112

http://stackoverflow.com/questions/23990358/keeping-unit-tests-in-separate-files-in-d/24018009

以上是关于[讨论]是否将单元测试文件和源文件放在一起的主要内容,如果未能解决你的问题,请参考以下文章

[J2EE][单元测试]

[J2EE][单元测试]

我在哪里把自定义代码放在 Laravel

单元测试类是不是应该与其余代码一起受版本控制?

Python 单元测试在哪里? [关闭]

如何在 Xcode 中为 Apple Watch 添加单元测试?