این دستور cmdtest است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.
برنامه:
نام
cmdtest - تست جعبه سیاه ابزارهای خط فرمان یونیکس
خلاصه
cmdtest [-cCOMMAND] [-- فرمان=COMMAND] [- پیکربندی=فایل] [--dump-config]
[--dump-setting-names] [---تولید-manpage=قالب] [-h] [--کمک] [--کمک-همه]
[--list-config-files] [- نسخه] [- بدون تنظیمات پیش فرض] [--dump-memory-profile=روش]
[-k] [--نگاه داشتن] [-- بدون نگه داشتن] [-- ثبت نام=فایل] [--log-keep=N] [---log-level=سطح] [--log-max=اندازه]
[- حالت ورود به سیستم=MODE] [-حافظه-دامپ-فاصله=ثانیه ها] [-- خروجی=فایل] [-tتست] [--تست=تست]
[-- زمان بندی] [-- بدون زمان بندی] [فایل] ...
شرح
cmdtest جعبه سیاه ابزارهای خط فرمان یونیکس را آزمایش می کند. با توجه به برخی از اسکریپت های تست، ورودی های آنها،
و خروجی های مورد انتظار، تأیید می کند که خط فرمان خروجی مورد انتظار را تولید می کند. اگر
نه، مشکلات را گزارش می کند و تفاوت ها را نشان می دهد.
هر مورد آزمایشی فو شامل فایل های زیر است:
foo.script
یک اسکریپت برای اجرای تست (این مورد نیاز است)
foo.stdin
فایل به ورودی استاندارد تغذیه می شود
foo.stdout
خروجی مورد انتظار به خروجی استاندارد
foo.stderr
خروجی مورد انتظار به خطای استاندارد
فو.خروج
کد خروج مورد انتظار
foo.setup
یک اسکریپت پوسته برای اجرا قبل از آزمون
foo.teardown
یک اسکریپت پوسته برای اجرا پس از آزمایش
معمولا یک تست کافی نیست. همه تست ها در یک دایرکتوری قرار می گیرند، و آنها
ممکن است برخی از کدهای راه اندازی و حذف را به اشتراک بگذارد:
راه اندازی یک بار
یک اسکریپت پوسته برای اجرا یک بار، قبل از هر آزمایش
برپایی یک پوسته اسکریپت برای اجرا قبل از هر آزمون
ترساندن
یک پوسته اسکریپت برای اجرا بعد از هر آزمون
پاره کردن-یک بار
یک اسکریپت پوسته برای یک بار اجرا، پس از همه آزمایش ها
cmdtest نام دایرکتوری با تمام تست ها یا چندین مورد از این قبیل داده می شود
دایرکتوری ها، و کارهای زیر را انجام می دهد:
· اجرا کردن راه اندازی یک بار
· برای هر مورد آزمایشی (پیشوند منحصر به فرد فو):
- اجرا کردن برپایی
- اجرا کردن foo.setup
- دستور را با اجرا اجرا کنید foo.script، و تغییر مسیر ورودی استاندارد به
از foo.stdinو گرفتن خروجی استاندارد و کدهای خطا و خروج
- اجرا کردن foo.teardown
- اجرا کردن ترساندن
- گزارش نتیجه آزمایش: آیا کد خروج مطابقت دارد فو.خروج، مطابقت خروجی استاندارد
foo.stdout، و خطای استاندارد مطابقت دارد foo.stderr?
· اجرا کردن پاره کردن-یک بار
بجز foo.script، همه این فایل ها اختیاری هستند. اگر اسکریپت راهاندازی یا حذفی است
از دست رفته، به سادگی اجرا نمی شود. اگر یکی از فایل های ورودی، خروجی یا خطای استاندارد باشد
گم شده است، به گونه ای رفتار می شود که انگار خالی است. اگر فایل کد خروج گم شده باشد، هست
طوری رفتار می شود که گویی کد خروجی صفر را مشخص کرده است.
اسکریپت های پوسته ممکن است از متغیرهای محیطی زیر استفاده کنند:
DATADIR
یک دایرکتوری موقت که در آن ممکن است فایل ها با آزمایش ایجاد شوند
TESTNAME
نام آزمایش فعلی (برای راه اندازی یک بار و پاره کردن-یک بار)
SRCDIR دایرکتوری که از آن cmdtest راه اندازی شد
OPTIONS
-c, -- فرمان=COMMAND
برای سازگاری با عقب نادیده گرفته شد
---تولید-manpage=قالب
SUPPRESSHELP
-h, --کمک
این پیام راهنما را نشان داده و خارج شوید
-k, --نگاه داشتن
داده های موقت در مورد خرابی را نگه دارید
-- بدون نگه داشتن
مقابل --keep
-- خروجی=فایل
خروجی را به جای خروجی استاندارد در FILE بنویسید
-t, --تست=تست
فقط TEST را اجرا کنید (می توان چندین بار داده شود)
-- زمان بندی
گزارش دهید که هر آزمون چقدر طول می کشد
-- بدون زمان بندی
مخالف --timings
- نسخه
نمایش شماره نسخه برنامه و خروج
پیکر بندی فایل ها و تنظیمات
- پیکربندی=فایل
FILE را به فایل های پیکربندی اضافه کنید
--dump-config
کل پیکربندی فعلی را بنویسید
--dump-setting-names
SUPPRESSHELP
--کمک-همه
نمایش همه گزینه ها
--list-config-files
SUPPRESSHELP
- بدون تنظیمات پیش فرض
لیست فایل های پیکربندی را برای خواندن پاک کنید
ورود به سیستم
-- ثبت نام=فایل
نوشتن ورودیهای گزارش در FILE (پیشفرض این است که اصلاً فایلهای گزارش ننویسید). از "syslog" استفاده کنید
برای ورود به سیستم log، "stderr" برای ورود به خروجی خطای استاندارد، یا "none" به
غیرفعال کردن ورود به سیستم
--log-keep=N
آخرین گزارش های N را نگه دارید (10)
---log-level=سطح
ورود در LEVEL، یکی از اشکالزدایی، اطلاعات، هشدار، خطا، بحرانی، کشنده (پیشفرض: اشکالزدایی)
--log-max=اندازه
چرخاندن گزارشهای بزرگتر از SIZE، صفر برای هرگز (پیشفرض: 0)
- حالت ورود به سیستم=MODE
اجازههای فایلهای گزارش جدید را روی MODE تنظیم کنید (اکتال؛ پیشفرض 0600)
پرفورمنس
--dump-memory-profile=روش
با استفاده از روش، که یکی از موارد زیر است، پروفایل های حافظه را خالی کنید.
(پیش فرض: ساده)
-حافظه-دامپ-فاصله=ثانیه ها
حداقل SECONDS فاصله بین پروفایل های حافظه را ایجاد کنید
مثال
برای آزمایش که از دست(1) دستور خروجی رشته مورد انتظار، ایجاد یک فایل به نام پژواک
tests/hello.script حاوی مطالب زیر:
#!/ بن / شل
پژواک سلام، دنیا
همچنین فایل را ایجاد کنید echo-tests/hello.stdout حاوی:
سلام دنیا
سپس می توانید تست ها را اجرا کنید:
$ cmdtest echo-tests
تست 1/1
1/1 تست خوب، 0 شکست
اگر فایل stdout را به چیز دیگری تغییر دهید، cmdtest تفاوت ها را گزارش خواهد کرد:
$ cmdtest echo-tests
FAIL: hello: stdout diff:
--- echo-tests/hello.stdout 2011-09-11 19:14:47 +0100
+++ echo-tests/hello.stdout-actual 2011-09-11 19:14:49 +0100
-1،1 +XNUMX،XNUMX
-یک چیز دیگر
+سلام دنیا
تست 1/1
0/1 تست خوب، 1 شکست
علاوه بر این، آزمون های اکو دایرکتوری حاوی فایل های خروجی واقعی است و با آن تفاوت دارد
فایل های مورد انتظار اگر یکی از فایل های خروجی واقعی واقعا درست باشد، می توانید
در واقع نام آن را به فایل مورد انتظار تغییر دهید. در واقع، این یک راه بسیار راحت است
ایجاد فایلهای خروجی مورد انتظار: آزمایش را اجرا میکنید، موارد را اصلاح میکنید تا زمانی که به صورت دستی انجام دهید
بررسی کردید خروجی واقعی درست است، سپس نام فایل را تغییر می دهید.
با استفاده از خدمات onworks.net از cmdtest آنلاین استفاده کنید