2009-10-03 63 views
8

經過積累足夠的測試後,運行它們都需要一些實時性,我查看了Test::Class::Load doc以查找運行單個測試課程的提示。它提供了一種方式來做到這一點,但我必須錯過一些東西,因爲我無法做到這一點。下面是我有:如何使用Test :: Class :: Load運行單個測試?

我的測試目錄:

drewfus:~/sandbox$ ls t/ 
lib/ perlcriticrc PerlCritic.t Unit.t 

t/Unit.t由以下部分組成:

use strict; 
use warnings; 

use Test::Class; 
use Test::More 'no_plan'; 
use Test::Class::Load 't/lib'; 

每建議在Test::Class::Load doc,我有一個基類,我的每個測試要繼承的類,SG::TestBase,生活在t/lib/SG/TestBase.pm

package SG::TestBase; 
use strict; 
use warnings; 
use base 'Test::Class'; 

INIT { Test::Class->runtests } 

1; 

最後,這裏有一個例子測試類,SG::UtilsTestt/lib/SG/UtilsTest.pm

package SG::UtilsTest; 
use strict; 
use warnings; 
use base 'SG::TestBase'; 

BEGIN { use_ok('SG::Utils') }; 
<etc> 

一切還是桃色的,如果我想運行所有Build testprove的測試,而是試圖運行單獨的測試沒有按「T工作:在點滴的錯誤文檔中:-)

最後一個參數應該是PA

drewfus:~/sandbox$ prove -lv SG::UtilsTest 
Cannot determine source for SG::UtilsTest at /usr/share/perl/5.10/App/Prove.pm line 496 

回答

5

恭喜th到測試類 - 而不是包名。您還需要將路徑添加到測試類庫,以便證明它們可以找到它們:

prove -lv -It/lib t/lib/SG/UtilsTest.pm 

應該可以工作。

+0

這可行,但七年後,文檔仍然有相同的錯誤。 – jja 2016-09-07 22:58:31

相關問題