惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Y
Y Combinator Blog
MyScale Blog
MyScale Blog
Recent Announcements
Recent Announcements
酷 壳 – CoolShell
酷 壳 – CoolShell
GbyAI
GbyAI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
N
Netflix TechBlog - Medium
V
V2EX
MongoDB | Blog
MongoDB | Blog
Microsoft Security Blog
Microsoft Security Blog
博客园 - 三生石上(FineUI控件)
Stack Overflow Blog
Stack Overflow Blog
U
Unit 42
B
Blog
Microsoft Azure Blog
Microsoft Azure Blog
博客园_首页
H
Help Net Security
D
DataBreaches.Net
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
阮一峰的网络日志
阮一峰的网络日志
T
The Blog of Author Tim Ferriss
C
Check Point Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报

博客园 - xuld

语言开发笔记3 编译器:类型系统的架构设计 语言开发随笔2 关于产品设计的思考 TS 原理详细解读(6)--语法增量解析 程序员的学习方法 T语言开发笔记1 T 语言语法设计(预审稿) 给萌新的 TS custom transformer plugin 教程——TypeScript 自定义转换器插件 TS 原理详细解读(7)绑定1-符号 TS 原理详细解读(5)语法2-语法解析 T 语言语法设计方案总结 TypeScript 源码详细解读(4)语法1-语法树 TypeScript 源码详细解读(3)词法2-标记解析 TypeScript 源码详细解读(2)词法1-字符处理 TypeScript 源码详细解读(1)总览 7年编程语言设计精华总结——写给想创造或正在创造一门新编程语言的同学 我为什么开发新语言 TypeScript 编译器源码研究(一) gitignore 规范
[讨论]是否将单元测试文件和源文件放在一起
xuld · 2016-10-06 · via 博客园 - xuld

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

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