2011-05-28 5 views
9

ऐसा प्रतीत होता है कि , print, आदि को .t में बस काम नहीं करता है। आउटपुट छिपा हुआ है। तो Test::More और Test::Tester का उपयोग करते समय मैं बस कुछ कैसे प्रिंट कर सकता हूं? मुझे यह चाहिए कि मैं इसका परीक्षण कैसे करें, यह निर्धारित करते समय मैं कुछ कोड के साथ खेल सकता हूं। नोट: यह ठीक है अगर यह stderr को भेजा गया है या केवल verbose का उपयोग कर देखने योग्य है। इसके अलावा मैंने diag का उपयोग करके सूख लिया लेकिन यह परीक्षण में कहीं भी काम नहीं करता था।एक टेस्ट में स्टडआउट को जानकारी कैसे भेज सकता है?

उत्तर

13

यदि आप सीधे एक टेस्ट स्क्रिप्ट चलाते हैं, तो आप print के आउटपुट देखेंगे - परीक्षण केवल पर्ल कोड हैं। हालांकि, यदि आप दोहन का उपयोग करके अपने परीक्षण चलाते हैं, तो आप आउटपुट में जो देखते हैं, वह दोहन, विशेष रूप से इसके वर्बोजिटी स्तर, और चाहे आप STDOUT या STDERR पर प्रिंट करते हैं, द्वारा निर्धारित किया जाएगा।

एक और तरीका है, परीक्षण के भीतर संदेशों प्रिंट Test::More के लिए दस्तावेज में Diagnostics देखते हैं, विशेष रूप से करने के लिए के लिए:

diag(...); 
note(...); 

इस तरह एक स्क्रिप्ट के साथ प्रयोग जल्दी से उदाहरण देकर स्पष्ट करना होगा कैसे चीजें काम:

# Example usages: 
#  perl  some_test.t # We see everything in output. 
#  prove some_test.t # We see only diag() and STDERR. 
#  prove -v some_test.t # Everything again. 

# In some_test.t 
use strict; 
use warnings; 
use Test::More; 

pass; 

diag("diag()"); 
note("note()"); 
print  "STDOUT\n"; 
print STDERR "STDERR\n"; 

done_testing; 
+0

मैं किसी भी तरह से दस्तावेज़ों में 'नोट' फ़ंक्शन पूरी तरह से चूक गया – xenoterracide

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