2009-10-03 13 views
8

उन सभी परीक्षणों को जमा करने के बाद, जो कुछ चल रहे हैं, कुछ वास्तविक समय लेते हैं, मैंने Test::Class::Load doc पर व्यक्तिगत परीक्षण कक्षाओं को चलाने के लिए एक टिप खोजने के लिए देखा। यह ऐसा करने का एक तरीका प्रदान करता है, लेकिन मुझे कुछ याद आना चाहिए, क्योंकि मैं इसे काम नहीं कर सकता। यहाँ मैं क्या है:मैं टेस्ट :: कक्षा :: लोड के साथ व्यक्तिगत परीक्षण कैसे चला सकता हूं?

मेरा परीक्षण निर्देशिका:

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 test या prove साथ परीक्षण के सभी चलाना चाहते हैं, लेकिन एक व्यक्ति के परीक्षण चलाने की कोशिश कर नहीं करता है 'टी काम: अंतिम तर्क दस्तावेज में गलती खोलना :-)

पा होना चाहिए पर

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

यह काम करता है, लेकिन सात साल बाद दस्तावेज़ में अभी भी एक ही त्रुटि है। – jja

संबंधित मुद्दे

 संबंधित मुद्दे