这是一个比其他任何问题都更符合我理解的问题。我过去Test::More
常常通过TAP::Harness
.
当测试运行时,它会返回一个退出代码和一个等待代码。
Test::More
根据文档,退出代码旨在在失败时返回非零值。
但是等待代码意味着什么?对于我正在运行的测试,它似乎是失败测试数 (256 * n) 的倍数。
我的猜测是该协议试图模拟 Unix 上的父子进程关系,但我对等待代码一无所知。
这是一个比其他任何问题都更符合我理解的问题。我过去Test::More
常常通过TAP::Harness
.
当测试运行时,它会返回一个退出代码和一个等待代码。
Test::More
根据文档,退出代码旨在在失败时返回非零值。
但是等待代码意味着什么?对于我正在运行的测试,它似乎是失败测试数 (256 * n) 的倍数。
我的猜测是该协议试图模拟 Unix 上的父子进程关系,但我对等待代码一无所知。
有关如何构建等待代码的更多信息,请参阅 $? . 正如您所推测的,Test::More 的退出代码乘以 256,通常该值将是失败测试的数量。
等待代码有用的原因是,它可以让您查看harness 下的代码何时因信号而退出:
use Test::More tests => 2;
ok 1,"first";
kill 15,$$;
ok 1,"second";
将产生 15 的等待状态。您的脚本是否退出信号取决于您在做什么;我有一个系统必须调用一个不可靠的远程服务,并且在另一端死机时会看到 SIGPIPE 错误。