2011-02-17 52 views
1

我嘗試這樣做,但它似乎沒有工作如果窗口中如何跳過子測試中的所有測試?

subtest 'catalyst scripts that should be executable' => sub { 
    plan({ skip_all => 'skip failing executable tests on windows' }) if $^O eq 'MSWin32'; 
    my $should_exec = [ @{ $dzpcs->scripts } ]; 

    foreach (@{ $should_exec }) { 
     ok (-x $_ , "$_" . ' is executable'); 
    } 
}; 

下面是我在cpants報告了。

計劃()不明白在t/02-MintingProfileCatalyst.t線46 #兒童(催化劑腳本應該是可執行的)HASH(0x286f4cc)退出而不調用完成() #測試失敗'催化劑腳本,應該可執行' #在C:/strawberry/perl/lib/Test/Builder.pm第252行。 #測試已運行,但沒有聲明計劃,並且沒有看到done_testing()。

所以我想這不是一個哈希,不知道它是什麼時候......什麼是最乾淨的方式,使這項工作? (附註:我無法測試的Win32,我只有我的Linux機器)

回答

4

​​有兩個參數,而不是一個hashref:

plan(skip_all => 'skip failing executable tests on windows') if $^O eq 'MSWin32'; 

並不是所有使用Moose。 ;-)

注意:出於測試目的,您可以將eq更改爲ne,因此它將跳過您的Linux機器上的測試。記得在之後將它改回來。

+0

爲什麼它是`=>`而不是`,``大部分時間`=>`表示一個散列鍵。 – xenoterracide 2011-02-17 10:45:26