در tl.testing فراهم می کند آب و برق های مختلف است که می تواند در هنگام نوشتن تست استفاده کنید. & nbsp؛ این است که سازگار به نسخه های پایتون 2.6 و 2.7 است.
گودل ماسه بازی از پوشه ها و فایل
هنگامی که آزمایش کد که تغییر پوشه ها و فایل، آن را قادر به ایجاد و بازرسی یک درخت نمونه از دایرکتوری ها و فایل های به راحتی مفید است. ماژول tl.testing.fs پشتیبانی برای ایجاد یک درخت از یک توصیف متنی، لیست آن را در قالب همان و تمیز کردن پس از خود را فراهم می کند.
در یک آزمایش توضیحات، این امکانات ممکن است مانند این مورد استفاده برای ایجاد و لیست دایرکتوری، فایل و لینک نمادین:
>>> از tl.testing.fs new_sandbox واردات، LS
>>> new_sandbox ("" "
... د غذ
... مواد غذایی F / نوار asdf
... ل باز -> مواد غذایی / نوار
... "" ")
>>> LS ()
L باز -> مواد غذایی / نوار
د غذ
F غذ / نوار asdf
fs.txt فایل یافت با کد منبع برای مشاوره بیشتر، از جمله چگونگی راه اندازی و پاره کردن آزمون با استفاده از گودال های مسه بازی فایل سیستم را ببینید.
نصب اسکریپت صدازدنی
برخی از قابلیت های یک ممکن است بخواهید برای آزمایش استفاده می کند از برنامه های خارجی مانند پیجر یا یک ویرایشگر متن. ماژول tl.testing.script آب و برق که نصب اسکریپت مسخره ساده در مکان های که در آن کد را به آزمایش می شود آنها را پیدا فراهم می کند. آنها را یک رشته از کد پایتون و ایجاد یک اسکریپت لفاف بسته بندی که مجموعه مسیر پایتون برای مطابقت با آزمون و کد اجرا می شود.
این است که چگونه چنین اسکریپت ساختگی ممکن است در یک آزمون توضیحات استفاده می شود:
>>> از واردات tl.testing.script نصب
>>> script_path = نصب ("چاپ" اسکریپت ساده. ")
>>> چاپ باز (script_path) .read ()
#! ...
سیستم واردات
sys.path [:] = [...]
چاپ اسکریپت ساده است. "
>>> واردات فرزند
>>> زیر = subprocess.Popen (script_path، پوسته = واقعی، STDOUT = subprocess.PIPE)
>>> STDOUT، stderr = sub.communicate ()
>>> STDOUT چاپ
اسکریپت ساده است.
script.txt فایل یافت با کد منبع برای فرصت بیشتر نحوه نصب و دسترسی اسکریپت ساختگی و همچنین نحوه به پاره کردن آزمون با استفاده از اسکریپت ساختگی را ببینید.
توضیحات، تست محتوای گرافیکی از سطوح قاهره
در حالی که مستقیم رو به جلو برای مقایسه محتوای دو سطح قاهره در کد پایتون، دست زدن به گرافیک فراتر از آزمون توضیحات است. با این حال، بسته مانوئل می توان برای استخراج موارد آزمون عمومی تر از یک سند متنی در حالی که اجازه می دهد تا آنها را مخلوط با آزمون توضیحات در یک راه طبیعی.
ماژول tl.testing.cairo یک کارخانه مجموعه تست استفاده می کند که مانوئل برای اجرای آزمون های گرافیکی فرموله به عنوان چهره های بازسازی متن را فراهم می کند. عنوان چنین شکل قرار است به بیان پایتون تحت اللفظی که ارزش یک سطح قاهره است، و تصویر خود را به عنوان انتظار تست استفاده می شود.
این است که چگونه یک سطح ممکن است به یک تصویر مورد انتظار در یک آزمون توضیحات در مقایسه:
>>> واردات قاهره
>>> از pkg_resources واردات resource_filename
>>> تصویر = resource_filename ('tl.testing'، 'testimages / correct.png')
.. :: شکل TL / تست / testimages / correct.png
و nbsp؛ `` cairo.ImageSurface.create_from_png (تصویر) ``
cairo.txt فایل یافت با کد منبع برای مشاوره بیشتر و مستندات از خروجی آزمون مراجعه کنید.
کار با موضوعات در کد آزمون
کلاس TestCase استاندارد خطاها و شکست که در موضوعات غیر از آن که اصلی رخ داده است را جمع آوری نیست. ماژول tl.testing.thread فراهم می کند کلاس های موضوع و کلاس ThreadAwareTestCase اجازه می دهد تا فقط که، و همچنین برخی از راحتی های دیگر برای آزمایش که با موضوعات برخورد: جلوگیری از استثنا کنترل نشده مورد انتظار در موضوعات از بودن با خروجی آزمون چاپ شده، گزارش موضوعات را پشت سر گذاشت با یک آزمایش، در حال اجرا کد در موضوع شبح، پیوستن به موضوعات و شمارش موضوعات آغاز شده در طول زمان آزمون اجرا:
>>> زمان واردات
>>> واردات tl.testing.thread
>>> کلاس SampleTest (tl.testing.thread.ThreadAwareTestCase):
...
... دف test_error_in_thread_should_be_reported (خود):
... با tl.testing.thread.ThreadJoiner (1):
... self.run_in_thread (لامبدا: 1/0)
...
... دف test_active_count_should_count_only_new_threads (خود):
... با tl.testing.thread.ThreadJoiner (1):
... self.run_in_thread (لامبدا: time.sleep (0.1))
... self.assertEqual (1، self.active_count ())
... self.assertEqual (0، self.active_count ())
>>> واردات unittest
>>> اجرا (unittest.makeSuite (SampleTest))
================================================== ====================
خطا: test_error_in_thread_should_be_reported (__builtin __ SampleTest.)
-------------------------------------------------- --------------------
Traceback (بیشتر تماس های اخیر آخرین):
& nbsp؛ در ...
ZeroDivisionError: تقسیم عدد صحیح یا پیمانه های صفر
-------------------------------------------------- --------------------
2 آزمون در N.NNNs ران
FAILED (خطا = 1)
فایل thread.txt با کد منبع برای کسب اطلاعات بیشتر از کلاس ThreadAwareTestCase یافت کنید.
ساخت مجموعه تست که با استفاده از مانوئل
به عنوان مانوئل فراهم می کند برخی از ویژگی های قدرتمند علاوه بر doctests استاندارد، وسایل آزمون مانوئل قرار است تا کمی متفاوت از آنهایی که استاندارد. tl.testing.doctest ماژول پیاده سازی یک کارخانه DocFileSuite است که می تواند مانند یک استاندارد استفاده می شود اما مجموعه تست با استفاده از مانوئل ایجاد و اجازه می دهد تا برخی از تنظیمات اضافی مربوط به مانوئل، در میان آنها توانایی تفسیر پانوشت که استفاده می شود با استفاده از توصیه انجام zope.testing.doctest:
>>> sample_txt = نوشتن ('sample.txt'، "" "
... [#footnote] _
... >>> X
... 1
...
... .. [#footnote]
... >>> X = 1
... "" ")
>>> از tl.testing.doctest DocFileSuite واردات
>>> اجرا (DocFileSuite (sample_txt، پانوشت = واقعی))
-------------------------------------------------- --------------------
1 آزمون در N.NNNs ران
باشه
>>> sample_txt = نوشتن ('sample.txt'، "" "
... .. کد بلوک :: پایتون
... X = 1
...
... >>> X
... 1
... "" ")
>>> واردات manuel.codeblock
>>> اجرا (DocFileSuite (sample_txt، مانوئل = manuel.codeblock.Manuel ()))
-------------------------------------------------- --------------------
1 آزمون در N.NNNs ران
OK
مورد نیاز:
پایتون
نظر یافت نشد