tl.testing biztosít a különböző eszközök, hogy lehet használni, ha írásban tesztek. & Nbsp; Ez összeegyeztethető a Python verzió a 2.6 és 2.7.
homokozók könyvtárak és fájlok
Amikor a vizsgálat kód, amely módosítja a könyvtárakat és fájlokat, hasznos, hogy képes létrehozni és ellenőrizni a mintát fa könyvtárak és fájlok könnyen. A tl.testing.fs modul létrehozásának támogatása egy fa egy szöveges leírás, amely felsorolja azt ugyanabban a formában és megtisztítása után is.
Egy doc vizsgálat, ezek a létesítmények lehet használni, mint ez, hogy hozzon létre, és felsorolni a könyvtár, a fájl egy szimbolikus link:
>>> From tl.testing.fs import new_sandbox, ls
>>> New_sandbox ("" "
... D ize
... F foo / bar asdf
... L BAZ -> foo / bar
... "" "),
>>> Ls ()
l BAZ -> foo / bar
d ize
f foo / bar asdf
Lásd a fájl fs.txt találtak a forráskód további tanácsért, például hogy hogyan kell beállítani és lerombolja tesztek segítségével file-rendszer homokozók.
telepítése hívható scriptek
Egyes funkciók használatához lehetne tesztelni kívánt teszi a külső programok, mint a személyhívó vagy egy szövegszerkesztőben. A tl.testing.script modul biztosít eszközöket, hogy telepítse egyszerű ál szkriptek olyan helyeken, ahol a kódot kell vizsgálni fogja találni őket. Vesznek egy sor Python kódot, és hozzon létre egy wrapper script, amely meghatározza a Python utat, hogy megfeleljen a vizsgálati és futtatja a kódot.
Így például egy ál script lehet használni a doc teszt:
>>> From tl.testing.script import telepíteni
>>> Parancsfájl_elérési_útja = telepíteni ("print" Egy egyszerű script. "")
>>> Print nyitott (parancsfájl_elérési_útja) .read ()
#! ...
import sys
sys.path [:] = [...]
print "Egy egyszerű script."
>>> Import alfolyamatban
>>> Sub = subprocess.Popen (parancsfájl_elérési_útja, shell = True, stdout = subprocess.PIPE)
>>> Stdout, stderr = sub.communicate ()
>>> Print stdout
Egy egyszerű script.
Lásd a fájl script.txt találtak a forráskód további lehetőségeket, hogyan kell telepíteni, és hozzáférést ál szkriptek, valamint hogyan kell lebontani tesztek ál-scriptek.
Doc-vizsgálat a képi tartalom, Kairó felületek
Bár egyenesen előre összehasonlítani a tartalmát két Kairó felületek Python kódot, kezelése grafika túl doc tesztek. Ugyanakkor a Manuel csomag kibontására használható általánosabb teszt esetek egy szöveges dokumentumot, miközben lehetővé teszi, hogy keverje össze doc tesztek természetes módon.
A tl.testing.cairo modul egy tesztsorozat gyári használó Manuel hogy végre grafikus tesztek fogalmazható átalakított szöveges adatokat. A képaláírás ilyen figura a feltételezések szerint a szó Python kifejezést, amelynek értéke egy kairói felületet, és a képet használja, mint a vizsgálati elvárás.
Így a felszíni összehasonlíthatók a várt képet egy doc teszt:
>>> Import Kairóban
>>> From pkg_resources import resource_filename
>>> Image = resource_filename ("tl.testing", "testimages / correct.png)
.. :: Figura tl / tesztelés / testimages / correct.png
& Nbsp; `` cairo.ImageSurface.create_from_png (image) ``
Lásd a fájl cairo.txt találtak a forráskód további tanácsot és dokumentációt az esetleges tesztkimenethez.
Munka szál teszt kód
A szabvány TestCase osztály nem gyűjtenek hibák és hiányosságok fordultak elő más szálak, mint az egy fő. A tl.testing.thread modul menet osztályok és a ThreadAwareTestCase class, hogy csak ezt, valamint néhány egyéb kényelmi vizsgálatokra, melyek olyan szálak: megakadályozza várható kezelt kivételek szálat nyomtat és a vizsgálati kimenet, jelentési szálak hátrahagyott egy teszt, futó kódot a daemon menet, csatlakozva szálak, és számolja az témáját a vizsgálat során a futás közben:
>>> Import ideje
>>> Import tl.testing.thread
>>> Class SampleTest (tl.testing.thread.ThreadAwareTestCase):
...
... Def test_error_in_thread_should_be_reported (self):
... A tl.testing.thread.ThreadJoiner (1):
... Self.run_in_thread (lambda: 1/0)
...
... Def test_active_count_should_count_only_new_threads (self):
... A tl.testing.thread.ThreadJoiner (1):
... Self.run_in_thread (lambda: time.sleep (0.1))
... Self.assertEqual (1, self.active_count ())
... Self.assertEqual (0, self.active_count ())
>>> Import unittest
>>> Run (unittest.makeSuite (SampleTest))
================================================== ====================
ERROR: test_error_in_thread_should_be_reported (__builtin __. SampleTest)
-------------------------------------------------- --------------------
Traceback (legutolsó hívás utolsó):
& Nbsp; ...
ZeroDivisionError: egészosztás vagy modulo nullával
-------------------------------------------------- --------------------
Futott 2 tesztek N.NNNs
Sikertelen (hiba = 1)
Lásd a fájl thread.txt találtak a forráskód további részleteket a ThreadAwareTestCase osztályban.
Építő tesztcsonagok használó Manuel
Manuel ad néhány nagy teljesítményű funkciók mellett a szokásos doctests, Manuel tesztcsonagok vannak beállítva kicsit másképp standard is. A tl.testing.doctest modul valósítja meg a DocFileSuite gyári amelyeket fel lehet használni, mint a standard egy, hanem létrehoz egy tesztsorozat segítségével Manuel és lehetővé teszi további konfigurálást kapcsolatos Manuel, köztük a képesség, hogy értelmezni lábjegyzetek használt tenni a korábbi, elavult zope.testing.doctest:
>>> Sample_txt = write ('sample.txt "," ""
... [#footnote] _
... >>> X
... 1
...
... .. [#footnote]
... >>> X = 1
... "" "),
>>> From tl.testing.doctest import DocFileSuite
>>> Run (DocFileSuite (sample_txt, lábjegyzetek = True))
-------------------------------------------------- --------------------
Futott 1 teszt N.NNNs
RENDBEN
>>> Sample_txt = write ('sample.txt "," ""
... .. Code-block :: python
... X = 1
...
... >>> X
... 1
... "" "),
>>> Import manuel.codeblock
>>> Run (DocFileSuite (sample_txt, Manuel = manuel.codeblock.Manuel ()))
-------------------------------------------------- --------------------
Futott 1 teszt N.NNNs
OK
követelmények :
- Python
Hozzászólás nem található