Reza Heydari
Reza Heydari
خواندن ۲ دقیقه·۴ سال پیش

جنگو - Test Runner

توی این مطلب میخواییم یه نگاهی کوتاه به Test Runner در جنگو بندازیم.

تست رانر ( Test Runner ) یه قسمت از تست فریمورک هست که تستایی که نوشتین پیدا میکنه و اجراشون میکنه. شما می تونین قسمتای مختلف این تست رانر رو شخصی سازی کنید.

تستا تو جنگو از یه کلاس Test Runner یه اسم ‍‍DiscoverRunner استفاده میکنه. این کلاس میاد تستای شمارو پیدا میکنه دیتابیس تستون رو میسازه. در کل میاد تستارو پیدا میکنه تنطیمات انجام میده بعدم اجراشون میکنه.

برای اینکه بتونین این کلاس رو توسعه بدین یا شخصی سازی کنین باید یه کلاس که از این کلاس ارث میبره رو بنویسین و توی فایل settings.py پروژتون بیایین متغیر TEST_RUNNER رو برابر این کلاستون قرار بدین.

برای مثال برای اینکه اطمینان پیدا کنیم که همه هشدار هامون رو نمایش بدیم بدون اینکه نیاز داشته باشه -W رو بزارین هر دفعه که تستاتون رو اجرا میکنین. میتونین از کد زیر استفاده کنیم.

# example/tests/runner.py import warnings from django.test.runner import DiscoverRunner class ExampleTestRunner(DiscoverRunner): def run_tests(self, *args, **kwargs): # Show all warnings once, especially to show DeprecationWarning # messages which Python ignores by default warnings.simplefilter(&quotdefault&quot) return super().run_tests(*args, **kwargs)

توی این کد ما اومدیم متد run_tests رو بازنویسی کردیم. بعدش میاییم توی فایل settings متغیر TEST_RUNNER مینویسیم به این شکل:

TEST_RUNNER = &quotexample.tests.runner.ExampleTestRunner&quot

شما میتونین با این روش پروسه تست هاتون توی جنگو رو توسعه بدین ...

برای اطلاعات بیشتر میتونین این لینک در مورد تست رانر توی داکیومنت خود جنگو بخونین..

امیدوارم مفید بوده باشه.



منابع

Speed Up Your Django Tests - Adam Johnson

Advanced testing topics

djangotddجنگوتست
شاید از این پست‌ها خوشتان بیاید