运行测试

使用 prove 和环境变量控制测试的执行

使用 prove

prove 是 Perl 自带的测试运行器,是执行 Test::Nginx 测试的标准工具:

bash
1# 运行所有测试(递归)
2prove -r t/
3
4# 详细输出模式
5prove -v t/001-basic.t
6
7# 并行运行(4 个 job)
8prove -j4 -r t/
9
10# 指定 Perl 包含路径
11prove -Ilib -v t/

运行单个测试块

有三种方式只运行某个测试块:

方式 1:在测试块中添加 --- ONLY

方式 2:使用环境变量 TEST_NGINX_NO_SHUFFLE=1 配合 --- LAST

方式 3:使用 TEST_NGINX_FIRST_BLOCK_ONLY=1 只运行第一个块

perl
1=== TEST 3: debug this specific test
2--- ONLY
3--- config
4 location /t {
5 return 200 "debug me";
6 }
7--- request
8GET /t
9--- response_body
10debug me

ONLY 段仅用于调试,提交代码前务必移除,否则其他测试都会被跳过。

环境变量控制

常用的测试控制环境变量:

变量说明
TEST_NGINX_BINARY指定 Nginx 可执行文件路径
TEST_NGINX_NO_SHUFFLE禁止随机打乱测试顺序
TEST_NGINX_SERVROOT自定义 servroot 路径
TEST_NGINX_PORT自定义监听端口(默认随机)
TEST_NGINX_VERBOSE启用详细日志输出
bash
1# 指定自编译的 Nginx
2TEST_NGINX_BINARY=/usr/local/openresty/nginx/sbin/nginx prove -v t/
3
4# 禁止随机顺序 + 详细模式
5TEST_NGINX_NO_SHUFFLE=1 TEST_NGINX_VERBOSE=1 prove -v t/001-basic.t