Perl 如何从Test::Script运行中获取标准输出?
我想用模块测试Perl脚本,比如testme.pl,并获取已执行脚本的标准输出。到目前为止,我得到了一个Perl 如何从Test::Script运行中获取标准输出?,perl,testing,Perl,Testing,我想用模块测试Perl脚本,比如testme.pl,并获取已执行脚本的标准输出。到目前为止,我得到了一个undef 以下是我尝试的内容(测试文件test.t): 以及要测试的脚本(testme.pl) 我还尝试使用数组ref\@out而不是$out,但仍然没有成功。有什么想法吗?谢谢 你就快拿到了。你需要这样做。否则,您只是传入undef,它将忽略该选项 script_runs(['testme.pl'], {"stdout"=>\$out}, 'run_script'); 你几乎成功了
undef
以下是我尝试的内容(测试文件test.t
):
以及要测试的脚本(testme.pl
)
我还尝试使用数组ref\@out而不是$out,但仍然没有成功。有什么想法吗?谢谢 你就快拿到了。你需要这样做。否则,您只是传入
undef
,它将忽略该选项
script_runs(['testme.pl'], {"stdout"=>\$out}, 'run_script');
你几乎成功了。你需要这样做。否则,您只是传入
undef
,它将忽略该选项
script_runs(['testme.pl'], {"stdout"=>\$out}, 'run_script');
{stdout=>\$out}
?@toolic Nope,我想对输出执行更高级的测试/匹配,我对完整的stdout感到更舒服。{stdout=>\$out}
?@toolic Nope,我想对输出执行更高级的测试/匹配,我对完整的stdout.Ouahou感到更舒服。它工作得很好。。我必须承认我不经常使用标量引用。谢谢你@schwern!哇胡。它工作得很好。。我必须承认我不经常使用标量引用。谢谢你@schwern!
script_runs(['testme.pl'], {"stdout"=>\$out}, 'run_script');