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 تغییر بدید.

موفق باشین :)

پست‌های معروف از این وبلاگ

رویدادها در MySQL

لیست شهر و استان‌های ایران

مدیریت مخارج، برنامه‌ای برای اندروید