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

  • 0TACTICAL0HIPPY0

    0TACTICAL0HI

    30 EYLÜL 2012
  • Alexander Johnson

    Alexander Jo

    26 Temmuz 2008
  • cekehechu

    cekehechu

    20 HAZİRAN 2006