2009-10-03 12 views
8

すべてを実行するのに十分なテストを蓄積した後、私はTest::Class::Load docを見て、個々のテストクラスを実行するためのヒントを見つけました。それはこれを行う方法を提供しますが、私はそれを機能させることができないので、何かが欠けているに違いありません。ここで私が持っているものです。Test :: Class :: Loadで個々のテストを実行するにはどうしたらいいですか?

私のテストディレクトリ:

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

t/Unit.tは、次の要素で構成されます

Test::Class::Load docで提案パー
use strict; 
use warnings; 

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

、私は私のテストのそれぞれの基本クラスを持っています継承するクラスSG::TestBaseは、t/lib/SG/TestBase.pmにあります。

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

INIT { Test::Class->runtests } 

1; 

そして最後に、ここで例のテストクラスは、t/lib/SG/UtilsTest.pmSG::UtilsTest次のとおりです。

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

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

すべては私がBuild testproveで全てのテストを実行したい場合は、まだ桃のですが、doesnの個別テストを実行しようとしています「トンの仕事:最後の引数は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

おめでとうございますパッケージ名ではなくテストクラスに渡します。また、テストクラスライブラリにパスを追加して、それらが見つかることを証明する必要があります。

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

が動作するはずです。

+0

これは機能しますが、7年後にもドキュメントには同じエラーがあります。 – jja

関連する問題