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

  • Charles Renaud

    Charles Rena

    10 Kasım 2007
  • Elly Awesome

    Elly Awesome

    15 ŞUBAT 2010
  • POGProductionz

    POGProductio

    27 NİSAN 2012