2017-04-19 86 views
0

我正在嘗試查找是否可以在Perl測試文件中運行一個測試用例。例如,考慮下面的Perl測試文件(從http://www.thegeekstuff.com/2013/02/perl-test-simple/複製):在Perl測試文件中只運行一個命名測試用例

#!/usr/bin/perl 

use strict; 
use warnings; 

use Test::Simple tests => 2; 

sub hello_world 
{ 
return "Hello world!"; 
} 

sub get_number 
{ 
return int(rand(1000)); 
} 
ok(hello_world() eq "Hello world!", "My Testcase 1"); 
ok(get_number() > 0, "My Testcase 2"); 

當我運行使用命令prove -v test.t這個文件我得到以下的輸出:

test.t .. 
1..2 
ok 1 - My Testcase 1 
ok 2 - My Testcase 2 
ok 

現在,我只想運行第二個測試案例,即My Testcase2。有沒有辦法在測試文件中執行一個命名的測試用例?

+0

爲什麼不刪除'My Testcase 1'? – toolic

+0

'Test :: More'有一個跳過測試的機制:http://perldoc.perl.org/Test/More.html#Conditional-tests – toolic

+0

有沒有一種方法(可能通過命令行參數)跳過測試沒有修改測試腳本? – user2888308

回答

5

簡短的回答是:不,由Test::Simple(或Test::More)提供的簡單測試框架和prove命令沒有辦法挑出從測試腳本一個特定的斷言和運行只是斷言。

但是,Perl測試生態系統提供了豐富多樣的選項。例如,Test::Class允許您在標準測試協議之上添加一個面向對象的層。這使您可以將測試分組到方法中,添加設置和拆卸方法,也可以將其分配到run individual test methods。如果不修改測試腳本,您仍然無法從命令行完成所有工作,但它距離您要求的步驟更近了一步。

當然,一個更簡單的解決方案是將您想要的位複製到自己的.t文件中並運行該文件。

相關問題