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 擷取。