Test-Driven Development رو با Sublime text2 تجربه کنید
بسم
الله الرحمن الرحیم
سلام
:)
یکی
از چیزهایی که خیلی حال میکنم اینه که
بشه یه جورایی همه ابزارهایی که باهاشون
کار می کنم رو تو یه جا دم دست داشته باشم
و واسه یه کار دیگه ای مجبور به تغییر محیط
نباشیم.
مثل
Git که تو
خود ادیتور دستوراتش و بزنی و کاراتو بکنی
(که البته
واسه این مورد فعلاً همون command-line
رو ترجیح می دم :)
)، که این اواخر
واسه یادگیری تست نویسی واسه کدهام سعی
میکنم به روش TDD عمل
کنم و واسه کلاسهای مورد نیازم (واسه
متدهاش البته) تست
بنویسم و بعد خود کد اصلی رو که به این
ترتیب یواش یواش هم به TDD عادت
کنم و هم به دستورات و نحوه کنار اومدن با
phpunit رو.
البته
واسه تست نویسی برای اسکریپت های PHP،
ابزارهای زیادی هست که من phpunit رو
انتخاب کردم.
از
این رو ادیتوری هم که باهاش کد میزنم
Sublime-text2 هست،
با اینکه فارسی رو درست حسابی ساپورت نمی
کنه :) ولی
کارباهاش واسم خیلی لذت بشه.
اینا
رو گفتم که بریم سر اصل موضوع.
موضوع
از این قراره که میخواستم تست هایی که
مینویسم رو تو خود ادیتور اجرا کنم و
خروجی رو ببینم و دیگه مجبور نشم به
command-line برم
و فلان و بهمان.
برای
sublime پلاگینی
هم واسه phpunit پیدا
کردم بودم که متأسفانه یا اون درست کار
نمی کرد، یا اینکه من بلد نبودم راش بندازم.
از
طرف دیگه می شه تو خود ادیتور، build
system تعریف کرد و
منم یکی واسه phpunit تعریف
کردم و نتیجهای هم که میخواستم رو
گرفتم.
در
کنار این گزینه یه فایل phpunit.xml در
کنار پروژه هام تعریف میکنم پوشه ای که
فایلهای تست درش قرار می گیره رو معرفی
میکنم و داخل sublime توسط
کلید های Ctrl+B می
یام این build system ای
رو که تعریف کرده بودم رو صدا میزنم و
phpunit هم
داخل پوشه پروژه اجرا می شه و فایل
phpunit.xml رو
می خونه و در نهایت خروجی رو داخل ادیتور
بهم می ده :)
و
البته فایلها در سابلایم همینطوری
نبایستی باز بشن و باید پروژه ای تعریف
بشه (Project->save project as ...) تا
مسیر پروژه هم مشخص بشه که فایل build
ای که ساختیم بتونه
از آدرس پروژه استفاده کنه و در نهایت
فایل xml رو
به phpunit برسونه.
اینام
کدهایی که استفاده کردم:
- کدهای فایل build هست:
{ "cmd": ["phpunit"], "file_regex": "php$", "selector": "source.php", "working_dir": "${project_path}" }
-اینم نمونه فایل phpunit.xml هست:
https://gist.github.com/4534079
<testsuites> <testsuite> <directory suffix=".php">Test</directory> </testsuite> </testsuites>
که
فایلهای تست در پوشه ای بنام Test
در کنار خود فایلهای
پروژه قرار می گیره که البته می تونید
آدرسش رو از همین فایل xml تغییر
بدید.
موفق
باشین :)