.
tl.testing müxtəlif testlər yazarkən istifadə edilə bilər kommunal & nbsp təmin edir; Bu Python versiyasını 2.6 və 2.7 uyğun gəlir.
rehberler ve faylları Sandboxes
Rehberler ve faylları düzəliş kodu test zaman, asanlıqla rehberler ve faylları nümunəsi ağac yaratmaq və yoxlamaq etmək üçün faydalıdır. tl.testing.fs modulu, mətn təsviri bir ağac yaradılması, eyni formatında siyahısı və özü sonra təmizləmək üçün dəstək verir.
Bir doc test, bu obyektlər bir kataloq bir fayl və simvolik link yaratmaq və siyahısı bu kimi istifadə edilə bilər:
>>> Tl.testing.fs idxal new_sandbox ki, ls
>>> New_sandbox ("" "
... D foo
... F foo / bar asdf
... L baz -> foo / bar
... "" ")
>>> Ls ()
l baz -> foo / bar
d foo
f foo / bar asdf
Qurmaq və fayl sistemi sandboxes istifadə testlər sökmək üçün necə daxil olmaqla daha məsləhət üçün mənbə kodu ilə aşkar fayl fs.txt baxın.
qurmaq callable scripts
Bir test etmək istəyirəm bilər ki, bəzi funksionallığı belə bir çağrı cihazı və ya mətn redaktoru kimi xarici proqramlar istifadə edir. tl.testing.script modulu kodu onları tapa test yerlərdə sadə istehza skript qurmaq kommunal təmin edir. Onlar Python kod string almaq və test ki, uyğun Python yolunu müəyyən edir və kodu çalışan bir banderol script yaradır.
Bu belə bir istehza script bir doc test istifadə edilə bilər necə:
>>> Tl.testing.script idxal quraşdırma
>>> Script_path = ("çap" A sadə script. ") Bərpa
>>> Print açıq (script_path) .Daha ()
# ...
idxal sys
sys.path [] = [...]
print 'A sadə script.
>>> Idxal subprocess
>>> Sub = subprocess.Popen (script_path, shell = Doğrudur, stdout = subprocess.PIPE)
>>> Stdout, stderr = sub.communicate ()
>>> Çap stdout
A sadə script.
Istehza scripts istifadə edərək daha da imkanları necə yüklemek üçün və daxil istehza scripts, habelə sökmək üçün necə test üçün mənbə kodu ilə aşkar fayl script.txt baxın.
Doc-test cairo səthlərin qrafik məzmun
Bu, Python kodu iki cairo səthlər məzmunu müqayisə etmək düz irəli olsa qrafik user doc testlər kənarda deyil. Lakin, manuel paketi təbii yolla doc testlər ilə qarışdırmaq üçün imkan isə bir mətn sənəd daha çox ümumi test hallarda çıxarmaq üçün istifadə edilə bilər.
tl.testing.cairo modul yenidən mətn rəqəmlər kimi ifadə qrafik testlər icra Manuel istifadə edən bir test suite fabriki təmin edir. Belə bir rəqəm mövzu olan dəyəri cairo səthi bir hərfi Python ifadə olması ehtimal edilir və onun image test gözləməsi kimi istifadə olunur.
Bu səthi bir doc test gözlənilən image ilə müqayisə oluna bilər necə:
>>> Idxal cairo
>>> Pkg_resources idxal resource_filename dən
>>> Image = resource_filename (tl.testing ',' testimages / correct.png)
.. :: Rəqəm tl / test / testimages / correct.png
& Nbsp; `` cairo.ImageSurface.create_from_png (image) ``
Daha məsləhət və mümkün test çıxış sənədlərin mənbə kodu ilə aşkar fayl cairo.txt baxın.
test kodu mövzuları İş
Standart testcase sinif əsas biri başqa mövzuları meydana gələn səhvlər və uğursuzluqlar toplamaq deyil. tl.testing.thread modul mövzu dərsləri verir və ThreadAwareTestCase sinif yalnız, həm də mövzuları ilə məşğul test üçün bir sıra digər şərait imkan: test çıxışı ilə çap olan mövzuları gözlənilir unhandled istisnalar qarşısının alınması, hesabat mövzuları geridə buraxdı bir test, bir daemon mövzu kodu çalışan mövzuları qoşulması və sayılması ilə mövzuları test run zamanı başladı:
>>> Idxal vaxt
>>> Idxal tl.testing.thread
>>> Sinif SampleTest (tl.testing.thread.ThreadAwareTestCase):
...
... Def (özünü) test_error_in_thread_should_be_reported:
... Tl.testing.thread.ThreadJoiner (1):
... Self.run_in_thread (lambda: 1/0)
...
... Def test_active_count_should_count_only_new_threads (özünü):
... 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 ())
>>> Idxal unittest
>>> Run (unittest.makeSuite (SampleTest))
================================================== ====================
SƏHV: test_error_in_thread_should_be_reported (__builtin __ SampleTest.)
-------------------------------------------------- --------------------
Traceback (ən son zəng, son):
& Nbsp; ...
ZeroDivisionError: tam bölgüsü və ya sıfır ilə modulo
-------------------------------------------------- --------------------
N.NNNs 2 testlər Ran
Uğursuz (səhvlər = 1)
ThreadAwareTestCase sinif Daha ətraflı məlumat üçün mənbə kodu ilə aşkar thread.txt faylına baxın.
Manuel istifadə test suit tikintisi
Manuel standart doctests əlavə bəzi güclü xüsusiyyətləri təmin edir ki, manuel test suit bir az fərqli standart olanları müəyyən edilir. tl.testing.doctest modul, onların arasında deprecated istifadə edilə üçün istifadə Dipnot şərh etmək imkanı standart kimi istifadə lakin Manuel istifadə edərək, bir testi yaradır və Manuel ilə bağlı bəzi əlavə konfiqurasiya imkan verir bilər ki, bir DocFileSuite fabriki həyata keçirir zope.testing.doctest:
>>> Sample_txt = yazmaq (sample.txt "," ""
... [#footnote] _
... >>> X
... 1
...
... .. [#footnote]
... >>> X = 1
... "" ")
>>> Tl.testing.doctest idxal DocFileSuite dən
>>> Run (DocFileSuite (sample_txt, Dipnot = True))
-------------------------------------------------- --------------------
N.NNNs 1 test Ran
OK
>>> Sample_txt = yazmaq (sample.txt "," ""
... .. Kod blok :: python
... X = 1
...
... >>> X
... 1
... "" ")
>>> Idxal manuel.codeblock
>>> Run (DocFileSuite (sample_txt, manuel manuel.codeblock.Manuel = ()))
-------------------------------------------------- --------------------
N.NNNs 1 test Ran
OK
tələblər
- Python
Şərhlər tapılmadı