2009-10-03 4 views
8

모두 실행하는 데 충분한 시간이 걸린 후 Test::Class::Load doc을보고 개별 테스트 클래스를 실행하기위한 팁을 찾았습니다. 이 일을 할 수있는 방법을 제공하지만, 나는 그 일을 할 수 없기 때문에 뭔가를 놓치고 있어야합니다. 여기에 내가 가진 무엇 :Test :: Class :: Load로 어떻게 개별 테스트를 실행할 수 있습니까?

내 테스트 디렉토리 :

t/Unit.t

drewfus:~/sandbox$ ls t/ 
lib/ perlcriticrc PerlCritic.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::TestBaset/lib/SG/TestBase.pm :

그리고 마지막으로, 여기에 예를 들어 테스트 클래스, SG::UtilsTestt/lib/SG/UtilsTest.pm에서이다 : 나는 Build test 또는 prove와 모든 테스트를 실행하려면

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

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

모든 여전히 복숭아입니다,하지만 아무튼 개별 테스트를 실행하려고 't 작업 : 포장 된해야

:-) 문서에 최종 인수 실수를 안보에

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

관련 문제