这是一个我很难理解的问题。我使用Test::More
通过TAP::Harness
运行一些测试。
当测试运行时,它返回一个退出代码和一个等待代码。
退出代码被设计为在失败时返回非零,根据Test::More
文档。
但是等待代码意味着什么呢?它似乎是我正在运行的测试的失败测试数(256 * n)的倍数。
我的猜测是,协议是试图模仿父-子进程关系
有关等待代码结构的更多信息,请参阅关于$?的说明。正如您所推测的,Test::More的退出代码乘以256,通常该值将是失败测试的数量。
等待代码很有用的原因是它让你看到你的代码何时因为一个信号而退出:
use Test::More tests => 2;
ok 1,"first";
kill 15,$$;
ok 1,"second";
将产生15的等待状态。您的脚本是否从信号中退出取决于您正在做什么;我有一个系统,它必须调用一个不可靠的远程服务,并且当另一端死亡时将看到SIGPIPE错误。