این دستور py.test است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.
برنامه:
نام
pytest - استفاده از pytest
صدا زدن PY.TEST از طریق پایتون -M PY.TEST
جدید در نسخه 2.0.
اگر از Python-2.5 یا بالاتر استفاده می کنید، می توانید آزمایش را از طریق مفسر پایتون از آن فراخوانی کنید
خط فرمان:
python -m pytest [...]
این معادل فراخوانی اسکریپت خط فرمان است py.test [...] به طور مستقیم.
دست آوردن کمک ON نسخه، گزینه نام ها، محیط زیست متغیرها
py.test --نسخه # نشان می دهد که pytest از کجا وارد شده است
py.test --fixtures # آرگومان های تابع داخلی موجود را نشان می دهد
py.test -h | --help # نشان دادن کمک در خط فرمان و گزینه های فایل پیکربندی
متوقف کردن بعد از L' اول (یا N) شکست ها
برای توقف فرآیند تست پس از اولین شکست (N):
py.test -x # توقف پس از اولین شکست
py.test --maxfail=2 # توقف پس از دو شکست
مشخص کردن تست / انتخاب کردن تست
چندین گزینه اجرای آزمایشی:
py.test test_mod.py # تست ها را در ماژول اجرا کنید
py.test somepath # همه آزمایشات را در زیر somepath اجرا کنید
py.test -k stringexpr # فقط تستهایی را با نامهایی اجرا میکند که با آن مطابقت دارند
# "عبارت رشته"، به عنوان مثال "MyClass و روش نه"
# TestMyClass.test_something را انتخاب می کند
# اما نه TestMyClass.test_method_simple
py.test test_mod.py::test_func # فقط تست هایی را اجرا می کند که با "شناسه گره" مطابقت دارند،
# برای مثال "test_mod.py::test_func" انتخاب خواهد شد
# فقط test_func در test_mod.py
py.test test_mod.py::TestClass::test_method # یک متد را اجرا کنید
# یک کلاس
pkg را وارد کنید و از مکان فایل سیستم آن برای یافتن و اجرای آزمایشها استفاده کنید:
py.test --pyargs pkg # تمام تست های موجود در زیر فهرست pypkg را اجرا کنید
در حال اصلاح پایتون ردیابی چاپ کردن
نمونه هایی برای اصلاح چاپ ردیابی:
py.test --showlocals # متغیرهای محلی را در ردیابی نشان می دهد
py.test -l # نشان دادن متغیرهای محلی (میانبر)
py.test --tb=long # قالب بندی پیش فرض ردیابی اطلاعاتی
py.test --tb=native # قالب بندی کتابخانه استاندارد پایتون
py.test --tb=short # قالب ردیابی کوتاهتر
py.test --tb=line # فقط یک خط در هر شکست
انداختن به PDB (PYTHON DEBUGGER) ON شکست ها
پایتون دارای یک دیباگر داخلی پایتون به نام است PDB. دزدگیر به شخص اجازه می دهد تا به آن رها شود
la PDB درخواست از طریق یک گزینه خط فرمان:
py.test --pdb
با این کار در هر خرابی، اشکالزدای پایتون را فراخوانی میکند. اغلب ممکن است فقط بخواهید انجام دهید
این برای اولین آزمون شکست خورده برای درک یک وضعیت شکست خاص:
py.test -x --pdb # در اولین شکست به PDB میافتد، سپس جلسه آزمون را پایان میدهد
py.test --pdb --maxfail=3 # سقوط به PDB برای سه شکست اول
توجه داشته باشید که در هر شکست، اطلاعات استثنا ذخیره می شود sys.last_value,
sys.last_type و sys.last_traceback. در استفاده تعاملی، این به فرد اجازه می دهد تا وارد آن شود
اشکال زدایی پس از مرگ با هر ابزار اشکال زدایی. همچنین می توان به صورت دستی به استثنا دسترسی پیدا کرد
اطلاعات، به عنوان مثال:
>>> سیستم را وارد کنید
>>> sys.last_traceback.tb_lineno
42
>>> sys.last_value
AssertionError('assert result == "ok"',)
تنظیمات A نقطه شکست / AKA SET_TRACE()
اگر می خواهید یک نقطه شکست تعیین کنید و وارد کنید pdb.set_trace() می توانید از یک کمک کننده استفاده کنید:
وارد کردن پای تست
def test_function():
...
pytest.set_trace() # invoke PDB debugger and tracing
قبل از pytest نسخه 2.0.0 فقط می توانستید وارد شوید PDB ردیابی اگر ضبط را غیرفعال کردید
در خط فرمان از طریق py.test -s. در نسخه های بعدی، pytest به طور خودکار آن را غیرفعال می کند
ضبط خروجی هنگام ورود PDB ردیابی:
· گرفتن خروجی در تست های دیگر تحت تأثیر قرار نمی گیرد.
· هرگونه خروجی آزمایشی قبلی که قبلاً گرفته شده است و به این ترتیب پردازش خواهد شد.
· هر خروجی بعدی که در همان آزمایش تولید می شود، گرفته نمی شود و در عوض دریافت می شود
مستقیماً به sys.stdout. توجه داشته باشید که این حتی برای خروجی آزمایشی نیز صادق است
پس از خروج از تعاملی PDB جلسه ردیابی و ادامه با آزمایش معمولی
را اجرا کنید.
از pytest نسخه 2.4.0 می توانید از Python بومی نیز استفاده کنید واردات pdb;pdb.set_trace()
برای ورود تماس بگیرید PDB ردیابی بدون نیاز به استفاده از pytest.set_trace() لفاف یا
صراحتاً گرفتن خروجی pytest از طریق را غیرفعال کنید py.test -s.
نمایه سازی تست اعدام مدت زمان
برای دریافت لیستی از کندترین 10 مدت زمان آزمون:
py.test --durations=10
پدید آوردن JUNITXML FORMAT فایل ها
برای ایجاد فایل های نتیجه که می تواند توسط هادسون یا ادغام پیوسته دیگر
سرورها، از این فراخوانی استفاده کنید:
py.test --junitxml=path
برای ایجاد یک فایل XML در مسیر.
record_xml_property
جدید در نسخه 2.8.
اگر میخواهید اطلاعات بیشتری را برای آزمایش ثبت کنید، میتوانید از آن استفاده کنید record_xml_property
ثابت:
def test_function (record_xml_property):
record_xml_property("example_key"، 1)
اظهار 0
این یک ویژگی اضافی اضافه می کند example_key="1" به تولید شده مورد آزمون برچسب:
هشدار:
این یک ویژگی آزمایشی است و رابط آن ممکن است با چیز دیگری جایگزین شود
قدرتمند و عمومی در نسخه های بعدی. عملکرد per-se حفظ خواهد شد،
با این حال.
در حال حاضر هنگام استفاده با آن کار نمی کند pytest-xdist پلاگین.
همچنین لطفاً توجه داشته باشید که استفاده از این ویژگی هر گونه تأیید طرح را خراب می کند. این
ممکن است هنگام استفاده با برخی از سرورهای CI مشکل ساز باشد.
پدید آوردن RESULTLOG FORMAT فایل ها
برای ایجاد فایلهای نتیجه قابل خواندن ماشینی متن ساده، میتوانید موارد زیر را صادر کنید:
py.test --resultlog=path
و به محتوا نگاه کنید مسیر محل. چنین فایل هایی به عنوان مثال توسط PyPy-test
صفحه وب برای نمایش نتایج آزمایش در چندین ویرایش.
در حال ارسال تست گزارش به آن لاین PASTEBIN SERVICE
ایجاد a URL برای هر آزمون شکست:
py.test --pastebin=failed
با این کار اطلاعات اجرای آزمایشی به یک سرویس Paste از راه دور ارسال می شود و برای هر یک URL ارائه می شود
شکست. میتوانید طبق معمول تستها را انتخاب کنید یا مثلاً اضافه کنید -x اگر فقط می خواهید یکی بفرستید
شکست خاص
ایجاد a URL برای a تمام آزمون جلسه ورود به سیستم:
py.test --pastebin=all
در حال حاضر فقط چسباندن به http://bpaste.net سرویس اجرا می شود.
غیرفعال کردن پلاگین
برای غیرفعال کردن بارگیری پلاگین های خاص در زمان فراخوانی، از -p گزینه همراه با
پیشوند نه:.
مثال: برای غیرفعال کردن بارگیری افزونه دکترا، که وظیفه اجرای doctest را بر عهده دارد
از فایل های متنی تست کنید، py.test را به این صورت فراخوانی کنید:
py.test -p no:doctest
صدا زدن PY.TEST از پایتون CODE
جدید در نسخه 2.0.
می توانید استناد کنید دزدگیر مستقیماً از کد پایتون:
pytest.main()
این طوری عمل می کند که گویی از خط فرمان "py.test" را فراخوانی می کنید. بالا نخواهد برد
SystemExit اما در عوض کد خروج را برگردانید. می توانید گزینه ها و آرگومان ها را ارسال کنید:
pytest.main(['-x'، 'mytestdir'])
یا به صورت رشته ای عبور دهید:
pytest.main("-x mytestdir")
شما می توانید افزونه های اضافی را مشخص کنید pytest.main:
# محتوای myinvoke.py
وارد کردن پای تست
کلاس MyPlugin:
def pytest_sessionfinish(self):
چاپ ("*** تکمیل گزارش اجرای آزمایشی")
pytest.main("-qq"، plugins=[MyPlugin()])
اجرای آن این را نشان می دهد MyPlugin اضافه شد و قلاب آن فراخوانی شد:
$ python myinvoke.py
*** تکمیل گزارش اجرای آزمایشی
با استفاده از خدمات onworks.net از py.test به صورت آنلاین استفاده کنید