2011-05-28 17 views
9

say, print, vb .'nin bir .t içine yerleştirilmesi işe yaramaz. Çıkış gizlendi. Bu yüzden Test::More ve Test::Tester kullanırken bir şeyi nasıl yazdırabilirim? Bunu istiyorum, böylece nasıl test edileceğini belirlerken bazı kodlarla oynayabilirim. not: stderr'e gönderildiyse veya yalnızca verbose kullanılarak görüntülenebilirse sorun yok. Ayrıca diag kullanarak kurudum ama bu testin herhangi bir yerinde çalışmak için görünmüyordu.Testte stdout'a nasıl basit bir şekilde bilgi gönderebilirim?

cevap

13

Bir test komut dosyasını doğrudan çalıştırıyorsanız, print çıktısını göreceksiniz - testler sadece Perl kodudur. Ancak, testlerinizi koşum takımıyla çalıştırırsanız, çıktıda gördüğünüz, kablo demeti, özellikle de ayrıntı düzeyi ve STDOUT veya STDERR'a yazdırarak belirlenir.

# 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

I:

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

hızla işlerin nasıl gösterilecektir böyle bir senaryo deneme: testler içinde mesaj yazdırmak önemlisi, Test::More belgelerinde Diagnostics görmek için başka bir yol için

Her nasılsa, dokümanlarda "not" işlevini tamamen kaçırdı – xenoterracide

İlgili konular