如何执行位于多个文件中的perl测试?

时间:2011-04-29 15:32:16

标签: perl unit-testing junit

为什么以下代码只从check2.t文件执行测试?

#!/usr/bin/perl -w

use strict; 
use warnings; 
use Modern::Perl;

use TAP::Harness::JUnit;

my $harness = TAP::Harness::JUnit->new({
   xmlfile => 'output.xml',
   namemangle => 'hudson',
   merge => 1
});

$harness->runtests(['check1.t', 'check2.t']);

2 个答案:

答案 0 :(得分:2)

实际上,它在调用check1.t时从check2.t运行测试。正如davorg指出的那样,runtests需要一个测试列表,而不是一个测试的arrayref。它似乎有用的原因是runtests还允许测试条目采用[ 'filename', 'comment' ]格式,其中filename是测试文件的名称,comment是要显示的字符串。 (这是基类documented中的TAP::Harness。)

答案 1 :(得分:0)

它甚至从check2.t运行测试吗? documentation for the module表示runtests获取测试文件列表,而不是数组引用。尝试将runtests行更改为:

$harness->runtests('check1.t', 'check2.t');