TAP::Parser::Iterator::Process - 基于进程的 TAP 源迭代器
版本 3.44
use TAP::Parser::Iterator::Process;
my %args = (
command => ['python', 'setup.py', 'test'],
merge => 1,
setup => sub { ... },
teardown => sub { ... },
);
my $it = TAP::Parser::Iterator::Process->new(\%args);
my $line = $it->next;
这是一个用于执行外部进程的简单迭代器包装器,由 TAP::Parser 使用。除非您正在编写插件或子类化,否则您可能不需要直接使用此模块。
new
创建一个迭代器。期望一个参数,该参数包含一个哈希引用,其形式为
command => \@command_to_execute
merge => $attempt_merge_stderr_and_stdout?
setup => $callback_to_setup_command
teardown => $callback_to_teardown_command
如果可用,尝试使用 IPC::Open3 和 IO::Select 与生成的进程进行通信。回退到 open()
。
next
当然,遍历进程输出。
next_raw
遍历原始输入,不应用任何针对奇怪输入语法的修复。
wait
获取此迭代器的进程的等待状态。
exit
获取此迭代器的进程的退出状态。
handle_unicode
升级输入流以处理 UTF8。
get_select_handles
返回一个文件句柄列表,这些文件句柄可以在上游的 select() 调用中使用,以指示此迭代器已准备就绪。非基于句柄的迭代器应返回一个空列表。
最初从 Test::Harness 中剥离。