2011-06-20 33 views
2

我在這樣的Perl使用TAP::Harness的Perl - TAP ::線束和test_args

$harness = TAP::Harness->new({ 
     formatter_class => 'TAP::Formatter::Console', 
     merge => 1, 
     verbosity => 1, 
     normalize => 1, 
     color => 1, 
     test_args => ['--url', $url, '--session', $session], 
    }); 

一段時間後我調用$ harness-> runtests(),經過多次測試的數組。

問題是,在我所有的測試:

use Data::Dumper; 
print Dumper \@ARGV; 

輸出:

$VAR1 = []; 

是否test_args不出來@ARGV中在基礎測試?我需要通過一些選項通過每個測試。

回答

4

您的初始化工作?我不得不hashref傳遞給constuctor,使其工作:

use TAP::Harness; 

$harness = TAP::Harness->new({ 
    formatter_class => 'TAP::Formatter::Console', 
    merge   => 1, 
    verbosity  => 1, 
    normalize  => 1, 
    color   => 1, 
    test_args  => ['--url', $url, '--session', $session], 
}); 

$harness->runtests('simple.t'); 

在測試simple.t

use Test::More; 
use Data::Dump qw(dump); 

dump [@ARGV]; # prints ["--url", "", "--session", ""] 

done_testing; 
+0

我重新輸入一些代碼,B/C我動態填寫的是在通過散列,所以這是一個錯字。奇怪的是,你可以讓它工作,但我會複製你的代碼並嘗試。 – jonathanpeppers

+0

@ Jonathan.Peppers - 請注意傳遞散列(作爲列表)和散列引用之間的區別。 'new'調用中的'{}'正在構造它。但無論如何,感謝您指向「TAP :: Harness」。 – bvr

+0

{}不是問題,但我會更新問題。 – jonathanpeppers