测试套件布局

约定的测试目录结构和文件命名规范

目录结构

标准的 Test::Nginx 项目使用如下目录布局:

text
1project-root/
2 t/
3 000-sanity.t # 基本健康检查
4 001-basic.t # 基础功能测试
5 002-request.t # 请求相关测试
6 003-response.t # 响应相关测试
7 ...
8 servroot/ # 自动生成的 Nginx 运行目录(不要提交)
9 lib/ # 项目的 Perl 模块
10 conf/ # 可选的配置模板

文件命名约定

  • 使用数字前缀保证执行顺序:001-xxx.t002-xxx.t
  • 文件名使用小写字母和连字符
  • 文件扩展名必须是 .t
  • 使用描述性名称表达测试意图

虽然 prove 默认按文件名排序执行,但 Test::Nginx 默认会 随机打乱 测试块的执行顺序。可以通过 no_shuffle() 禁用。

建议每个 .t 文件聚焦一个功能特性,保持文件大小适中。过大的文件会影响调试效率。

servroot 目录

测试运行时,框架会在 t/servroot/ 下创建完整的 Nginx 运行环境:

路径说明
t/servroot/conf/nginx.conf自动生成的配置文件
t/servroot/html/文档根目录
t/servroot/logs/error.log错误日志
t/servroot/logs/access.log访问日志

调试时查看 t/servroot/conf/nginx.conf 可以了解框架生成了什么样的配置。