内容

名称

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::Open3IO::Select 与生成的进程进行通信。回退到 open()

实例方法

next

当然,遍历进程输出。

next_raw

遍历原始输入,不应用任何针对奇怪输入语法的修复。

wait

获取此迭代器的进程的等待状态。

exit

获取此迭代器的进程的退出状态。

handle_unicode

升级输入流以处理 UTF8。

get_select_handles

返回一个文件句柄列表,这些文件句柄可以在上游的 select() 调用中使用,以指示此迭代器已准备就绪。非基于句柄的迭代器应返回一个空列表。

归属

最初从 Test::Harness 中剥离。

另请参阅

TAP::ObjectTAP::ParserTAP::Parser::Iterator