SORU
12 Kasım 2008, ÇARŞAMBA


Python birim test veri yazdırılıyor

Eğer python (unittest modülü kullanarak) birim testleri yazıyorum, bu hataya neden olan sorunu anlamak yardımcı olmak için muayene edeyim başarısız bir test, veri çıkış mümkün mü? Biraz bilgi taşıyabilen özel bir mesaj oluşturmak için yeteneği farkındayım, ama bazen kolayca bir dize olarak temsil edilebilir mi bu daha karmaşık veri ile anlaşma olabilir.

Örneğin, bir sınıf Foo vardı, ve bir yöntem test çubuğu, liste testdata adı verilen verileri kullanarak varsayalım:

class TestBar(unittest.TestCase):
    def runTest(self):
        for t1, t2 in testdata:
            f = Foo(t1)
            self.assertEqual(f.bar(t2), 2)

Eğer test başarısız olursa, t1, t2 ve/veya f, bu özel bir veri başarısızlıkla sonuçlandı neden çıktı isteyebilirsiniz. Çıktı, test bittikten sonra değişkenleri diğer değişkenler gibi erişilebilir.

CEVAP
12 Kasım 2008, ÇARŞAMBA


Bu günlüğe kaydetme modülünü kullanıyoruz.

Örneğin:

import logging
class SomeTest( unittest.TestCase ):
    def testSomething( self ):
        log= logging.getLogger( "SomeTest.testSomething" )
        log.debug( "this= %r", self.this )
        log.debug( "that= %r", self.that )
        # etc.
        self.assertEquals( 3.14, pi )

if __name__ == "__main__":
    logging.basicConfig( stream=sys.stderr )
    logging.getLogger( "SomeTest.testSomething" ).setLevel( logging.DEBUG )
    unittest.main()

Bize başarısız olduğunu biliyoruz ve bunun için ek hata ayıklama bilgilerini istiyoruz özel testler için hata ayıklama açmak için izin verir.

Benim tercih edilen yöntem, ancak, hata ayıklama üzerinde çok zaman geçirdim, ama iyi ayarlanmış sorunu ortaya çıkarmak için daha fazla test yazarak geçirmek değil.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Capcom Unity

    Capcom Unity

    5 NİSAN 2010
  • gamingbits

    gamingbits

    2 Mayıs 2006
  • MVLV28

    MVLV28

    17 Mart 2008