DUNE-RUNTEST(1) Dune Manual DUNE-RUNTEST(1)

dune-runtest - اجرای آزمون‌ها

dune runtest [OPTION]… [TEST]…

اجرای آزمون‌های مشخص‌شده. آرگومان [TEST] می‌تواند یکی از موارد زیر باشد:

-
یک دایرکتوری: اگر یک دایرکتوری مشخص شود، dune به‌صورت بازگشتی تمام آزمون‌های درون آن دایرکتوری را اجرا خواهد کرد.
-
یک نام فایل: اگر نام فایل مشخصی ارائه شود، dune آزمون‌های با آن نام را اجرا خواهد کرد.

اگر هیچ [TEST] مشخص نشود، dune تمام آزمون‌های دایرکتوری جاری و زیردایرکتوری‌های آن را اجرا خواهد کرد.

برای اطلاعات بیشتر در مورد موارد کاربرد، بخش «مثال‌ها (EXAMPLES)» را در ادامه ببینید.

--action-stderr-on-success=VAL
همانند --action-stdout-on-success اما برای خطای استاندارد به جای خروجی استاندارد اعمال می‌شود. یک پیش‌فرض مناسب برای مخازن بزرگ تک‌مخزنی (monorepo) عبارت است از --action-stdout-on-success=swallow --action-stderr-on-success=must-be-empty. این کار تضمین می‌کند که یک ساخت موفقیت‌آمیز، خروجی خالی و «تمیز» داشته باشد.
--action-stdout-on-success=VAL
مشخص می‌کند هنگام موفقیت کنش‌ها، با خروجی استاندارد آن‌ها چگونه رفتار شود. مقادیر ممکن عبارتند از: print برای چاپ صرف آن در خروجی Dune، swallow برای نادیده گرفتن کامل آن و must-be-empty برای الزام به اینکه کنش چیزی چاپ نکرده باشد. با مقدار must-be-empty، اگر کنش چیزی در خروجی استاندارد خود چاپ کند، Dune آن را ناموفق تلقی خواهد کرد. مقدار پیش‌فرض print است.
--build-info
نمایش اطلاعات ساخت.
--display-separate-messages
جداسازی پیام‌های خطا با یک خط خالی.
--error-reporting=VAL (absent=deterministic)
زمان گزارش خطاهای ساخت را کنترل می‌کند. مقدار early خطاها را به محض کشف شدن گزارش می‌دهد. مقدار deterministic خطاها را در پایان ساخت با ترتیبی معین گزارش می‌کند. مقدار twice هر خطا را دو بار گزارش می‌کند: یک بار به محض کشف خطا و سپس بار دیگر در پایان ساخت با ترتیبی معین.
-f, --force
اجرای مجدد اجباری کنش‌های مرتبط با نام‌های مستعار (aliases)، حتی اگر وابستگی‌های آن‌ها تغییر نکرده باشد.
--file-watcher=VAL (absent=automatic)
سازوکار تشخیص تغییرات در منبع. مقدار Automatic باعث می‌شود dune برنامه‌ای خارجی را برای تشخیص تغییرات اجرا کند. مقدار Manual برای مطلع کردن دستی dune از تغییر فایل‌ها است.
--passive-watch-mode
مشابه [--watch]، اما تنها زمانی ساخت را آغاز می‌کند که دستور آن از بیرون و از طریق RPC صادر شود.
--sandbox=VAL (absent DUNE_SANDBOX env)
تنظیم حالت ایزوله‌سازی (sandboxing). برخی کنش‌ها نیازمند حالت ایزوله‌سازی خاصی هستند و این تنظیم را نادیده خواهند گرفت. مقادیر مجاز عبارتند از: none، symlink، copy، hardlink.
--stop-on-first-error
توقف فرایند ساخت به محض مواجهه با نخستین خطا.
-w, --watch
به جای خاتمه فرایند ساخت پس از اتمام، به‌طور مداوم منتظر تغییرات فایل بمان.
--wait-for-filesystem-clock
ابزار Dune برای بهبود کارایی افزایشی، محتوای فایل‌ها را خلاصه (digest) می‌کند. این خلاصه‌ها خودشان در حافظه پنهان ذخیره می‌شوند. در برخی موارد، Dune برای اطمینان‌پذیری نیاز دارد برخی از مدخل‌های حافظه پنهان خلاصه را دور بریزد. این گزینه باعث می‌شود Dune منتظر جلو رفتن ساعت سیستم فایل بماند تا نیازی به دور ریختن چیزی نداشته باشد. احتمالاً نیازی نیست نگران این گزینه باشید؛ این گزینه بیشتر برای توسعه‌دهندگان Dune کاربرد دارد تا آزمون‌های Dune مربوط به حافظه پنهان خلاصه بازتولیدپذیرتر شوند.

این گزینه‌ها میان تمامی دستورها مشترک هستند.

--always-show-command-line
همیشه خط فرمان کامل برنامه‌های اجراشده توسط dune را نمایش می‌دهد.
--auto-promote
ارتقای خودکار فایل‌ها (promote). این عملکرد مشابه اجرای dune promote پس از ساخت است.
--build-dir=FILE (absent DUNE_BUILD_DIR env)
دایرکتوری ساخت مشخص‌شده. در صورت عدم تعیین، _build استفاده می‌شود
--cache=VAL (absent DUNE_CACHE env)
فعال یا غیرفعال کردن حافظه پنهان Dune (یکی از مقادیر disabled، enabled-except-user-rules یا enabled). مقدار پیش‌فرض `enabled-except-user-rules' است.
--cache-check-probability=VAL (absent DUNE_CACHE_CHECK_PROBABILITY env)
بررسی بازتولیدپذیری ساخت با اجرای مجدد قواعد به‌طور تصادفی انتخاب‌شده و مقایسه نتایج آن‌ها با آنچه در حافظه پنهان Dune ذخیره شده است. توجه: با افزایش احتمال این بررسی‌ها، سرعت ساخت کاهش می‌یابد. احتمال پیش‌فرض صفر است، یعنی هیچ قاعده‌ای بررسی نمی‌شود.
--cache-storage-mode=VAL (absent DUNE_CACHE_STORAGE_MODE env)
حالت ذخیره‌سازی حافظه پنهان Dune (یکی از auto، hardlink یا copy). مقدار پیش‌فرض `hardlink' است.
--config-file=FILE
بارگذاری این فایل پیکربندی به جای فایل پیش‌فرض.
--debug-backtraces
همیشه ردگیری پشته (backtrace) استثناها چاپ شود.
--debug-dependency-path
در صورت بروز خطا، مسیر وابستگی از هدف‌های خط فرمان تا قاعده‌ای که شکست خورده چاپ شود.
--debug-package-logs (absent DUNE_DEBUG_PACKAGE_LOGS env)
همیشه گزارش‌های استاندارد هنگام ساخت بسته‌ها چاپ شود
--default-target=TARGET (absent=@@default)
تنظیم هدف پیش‌فرضی که در صورت مشخص نشدن هدف برای dune build استفاده می‌شود.
--diff-command=VAL (absent DUNE_DIFF_COMMAND env)
دستور پوسته برای مقایسه (diff) فایل‌ها. برای غیرفعال کردن چاپ تفاوت‌ها از - استفاده کنید.
--disable-promotion (absent DUNE_DISABLE_PROMOTION env)
غیرفعال کردن تمام قواعد ارتقا
--display=MODE
کنترل حالت نمایش Dune. برای جزئیات بیشتر dune-config(5) را ببینید. مقادیر معتبر برای این گزینه عبارتند از: progress، verbose، short، quiet یا tui.
--dump-gc-stats=FILE
تخلیه آمار زباله‌روب (garbage collector) در یک فایل پس از تکمیل فرایند ساخت.
--help[=FMT] (default=auto)
نمایش این راهنما در قالب FMT. مقدار FMT باید یکی از auto، pager، groff یا plain باشد. با انتخاب auto، هرگاه متغیر محیطی TERM برابر dumb یا تعریف‌نشده باشد، قالب به‌صورت pager یا plain خواهد بود.
--ignore-promoted-rules
نادیده گرفتن قواعد با (mode promote)، به جز مواردی که دارای (only ...) هستند. متغیر %{ignoring_promoted_rules} در فایل‌های dune نشان‌دهنده ارسال یا عدم ارسال این گزینه است.
--instrument-with=BACKENDS (absent DUNE_INSTRUMENT_WITH env)
فعال‌سازی ابزاردقیق‌سازی (instrumentation) توسط BACKENDS. مقدار BACKENDS فهرستی از نام‌های کتابخانه است که با کاما جدا شده‌اند، و هر کدام باید یک پشتیبان ابزاردقیق‌سازی اعلان کنند.
-j JOBS (absent DUNE_JOBS env)
اجرای هم‌زمان حداکثر JOBS دستور. مقدار JOBS باید یک عدد صحیح مثبت یا auto برای تشخیص خودکار تعداد هسته‌ها (پیش‌فرض) باشد.
--no-buffer
عدم بافر کردن خروجی دستورهای اجراشده توسط dune. به‌طور پیش‌فرض dune خروجی زیردستورها را بافر می‌کند تا از درهم‌آمیزی خروجی‌ها هنگام اجرای موازی چندین دستور جلوگیری شود. با این حال، این موضوع هنگام اشکال‌زدایی آزمون‌های طولانی‌مدت می‌تواند مشکل‌ساز باشد. با --no-buffer، دستورها دسترسی مستقیم به ترمینال دارند. توجه داشته باشید که در نتیجه این کار، خروجی آن‌ها در فایل گزارش ثبت نخواهد شد. برای جلوگیری از تداخل خروجی‌ها، باید از این گزینه همراه با -j 1 استفاده کنید. علاوه بر این، باید از --verbose نیز استفاده کنید تا مطمئن شوید دستورها پیش از اجرا چاپ می‌شوند.
--no-config
عدم بارگذاری فایل پیکربندی
--no-print-directory
عدم نمایش پیام‌های «Entering directory».
--only-packages=PACKAGES
نادیده گرفتن بندهایی (stanzas) که به بسته‌ای خارج از PACKAGES ارجاع می‌دهند. مقدار PACKAGES فهرستی از نام‌های بسته جداشده با کاما است. توجه داشته باشید که این کار تاثیری مشابه حذف بندهای مربوطه از فایل‌های dune دارد. این گزینه عمدتاً برای نسخه‌های انتشار در نظر گرفته شده است. در حین توسعه، به احتمال زیاد آن‌چه می‌خواهید در عوض، ساخت یک هدف خاص <package>.install است.
-p PACKAGES, --for-release-of-packages=PACKAGES (required)
کوتاه‌نوشتی برای --release --pkg=disabled --only-packages PACKAGE. هنگامی که پروژه شامل چند بسته است، شما باید از این گزینه در فایل‌های <package>.opam خود استفاده کنید تا فقط آن‌چه لازم است ساخته شود و همچنین ساخت‌های بازتولیدپذیر حاصل گردد.
--pkg=VAL
فعال یا غیرفعال کردن مدیریت بسته‌ها. رفتار پیش‌فرض بستگی به وجود یا عدم وجود دایرکتوری قفل (lock directory) دارد.
--profile=VAL (absent DUNE_PROFILE env)
انتخاب نمایه ساخت (build profile)، برای نمونه dev یا release. مقدار پیش‌فرض dev است.
--promote-install-files[=VAL] (default=true)
ارتقای (promote) تمام فایل‌های <package>.install تولیدشده به درخت منبع.
--release
قرار دادن dune در حالت بازتولیدپذیر release. کوتاه‌نوشتی برای --root . --ignore-promoted-rules --no-config --profile release --always-show-command-line --promote-install-files --require-dune-project-file --default-target @install. شما باید از این گزینه برای ساخت‌های انتشار استفاده کنید. برای مثال، باید این گزینه را در فایل‌های <package>.opam خود به کار ببرید؛ مگر اینکه از پیش -p را استفاده کرده باشید، چرا که -p مستلزم این گزینه است.
--require-dune-project-file[=VAL] (default=true)
شکست عملیات در صورت نبود فایل dune-project.
--root=DIR (absent DUNE_ROOT env)
استفاده از این دایرکتوری به عنوان ریشه فضای کاری (workspace root) به جای حدس زدن آن. توجه داشته باشید که این گزینه تفسیر هدف‌های ارائه‌شده در خط فرمان را تغییر نمی‌دهد. این گزینه فقط برای اسکریپت‌ها در نظر گرفته شده است.
--store-orig-source-dir (absent DUNE_STORE_ORIG_SOURCE_DIR env)
ذخیره مکان اصلی منبع در فراداده dune-package.
--target-exec=TOOLCHAIN=CMD (absent DUNE_TARGET_EXEC env)
دستور پوششی (wrapper) برای اجرای دودویی‌های هدف هنگام کامپایل متقابل (cross-compiling). قالب: TOOLCHAIN=CMD (برای نمونه، 'windows=wine').
--terminal-persistence=MODE
تغییر نحوه نمایش گزارش نتایج ساخت در کنسول بین بازساخت‌ها در حالت --watch. حالت‌های پشتیبانی‌شده: preserve، clear-on-rebuild، clear-on-rebuild-and-flush-history.
--trace-file=FILE
خروجی داده‌های ردگیری (trace) در قالب catapult (سازگار با chrome://tracing).
--verbose
همانند --display verbose
--version
نمایش اطلاعات نسخه.
--watch-exclusions=REGEX
افزودن یک عبارت باقاعده POSIX که دایرکتوری‌های منطبق را از `dune build --watch` مستثنی می‌کند. گزینه --watch-exclusions را می‌توان برای افزودن چندین استثنا تکرار کرد. از نقطه-ویرگول (semicolon) نیز می‌توان به عنوان جداکننده استفاده کرد. اگر هیچ استثنایی مشخص نشود، یک مجموعه استاندارد از استثناها به کار گرفته می‌شود؛ با این حال، اگر یک یا چند --watch-exclusions استفاده شود، هیچ‌یک از استثناهای استاندارد به کار گرفته نخواهند شد. استثناهای استاندارد عبارتند از: ^_opam /_opam ^_esy /_esy ^\.#.* /\.#.* ~$ ^#[^#]*#$ /#[^#]*#$ ^4913$ /4913$ /.git /.hg :/windows
--workspace=FILE (absent DUNE_WORKSPACE env)
استفاده از این فایل فضای کاری مشخص به جای جستجوی آن.
-x VAL (absent DUNE_CROSS_TARGET env)
کامپایل متقابل (cross-compile) با استفاده از این زنجیره ابزار (toolchain).

برای دریافت راهنما در مورد یک دستور خاص، از `dune COMMAND --help' استفاده کنید.

dune runtest با این کدها خارج می‌شود:

0
در صورت موفقیت.
1
اگر خطایی رخ دهد.
130
اگر توسط یک سیگنال متوقف شود.

این متغیرهای محیطی بر اجرای runtest تأثیر می‌گذارند:

اگر مقداری غیر از 0 داشته باشد، رنگ‌های ANSI پشتیبانی می‌شوند و زمانی که برنامه به لوله‌کشی (pipe) هدایت نشده باشد باید استفاده شوند. اگر برابر با 0 باشد، کدهای گریز رنگ ANSI در خروجی داده نمی‌شوند
اگر مقداری غیر از 0 داشته باشد، رنگ‌های ANSI باید در هر شرایطی فعال شوند.
دایرکتوری ساخت مشخص‌شده. در صورت عدم تعیین، _build استفاده می‌شود
فعال یا غیرفعال کردن حافظه پنهان Dune (یکی از disabled، enabled-except-user-rules یا enabled). مقدار پیش‌فرض `enabled-except-user-rules' است.
بررسی بازتولیدپذیری ساخت با اجرای مجدد قواعد به‌طور تصادفی انتخاب‌شده و مقایسه نتایج آن‌ها با آنچه در حافظه پنهان Dune ذخیره شده است. توجه: با افزایش احتمال این بررسی‌ها، سرعت ساخت کاهش می‌یابد. احتمال پیش‌فرض صفر است، یعنی هیچ قاعده‌ای بررسی نمی‌شود.
در صورت تنظیم، مکان تمام حافظه‌های پنهان مختلف مورداستفاده توسط dune را تعیین می‌کند.
حالت ذخیره‌سازی حافظه پنهان Dune (یکی از auto، hardlink یا copy). مقدار پیش‌فرض `hardlink' است.
کامپایل متقابل با استفاده از این زنجیره ابزار.
همیشه گزارش‌های استاندارد هنگام ساخت بسته‌ها چاپ شود
دستور پوسته برای مقایسه فایل‌ها. برای غیرفعال کردن چاپ تفاوت‌ها از - استفاده کنید.
غیرفعال کردن تمام قواعد ارتقا
فعال‌سازی ابزاردقیق‌سازی توسط BACKENDS. مقدار BACKENDS فهرستی از نام‌های کتابخانه جداشده با کاما است که هر کدام باید یک پشتیبان ابزاردقیق‌سازی اعلان کنند.
اجرای هم‌زمان حداکثر JOBS دستور. مقدار JOBS باید یک عدد صحیح مثبت یا auto برای تشخیص خودکار تعداد هسته‌ها (پیش‌فرض) باشد.
نمایه ساخت. در صورت عدم تعیین، dev یا در صورت تنظیم بودن -p برابر با release است.
استفاده از این دایرکتوری به عنوان ریشه فضای کاری به جای حدس زدن آن. توجه داشته باشید که این گزینه تفسیر هدف‌های ارائه‌شده در خط فرمان را تغییر نمی‌دهد. این گزینه فقط برای اسکریپت‌ها در نظر گرفته شده است.
حالت ایزوله‌سازی پیش‌فرضی که استفاده می‌شود. (--sandbox را ببینید)
ذخیره مکان اصلی منبع در فراداده dune-package.
دستور پوششی برای اجرای باینری‌های هدف هنگام کامپایل متقابل. قالب: TOOLCHAIN=CMD (برای نمونه، 'windows=wine').
استفاده از این فایل فضای کاری مشخص به جای جستجوی آن.

گزارش باگ‌ها را در https://github.com/ocaml/dune/issues بررسی کنید

dune(1)

1.
اجرای تمام آزمون‌ها در یک دایرکتوری مشخص:
dune runtest path/to/dir/
2.
اجرای یک آزمون cram مشخص:
dune runtest path/to/mytest.t
3.
اجرای تمام آزمون‌ها در درخت منبع فعلی (شامل مواردی که در اجرای پیشین موفق بوده‌اند):
dune runtest --force
4.
اجرای متوالی آزمون‌ها بدون بافر کردن خروجی:
dune runtest --no-buffer -j 1
5.
اجرای آزمون‌ها در یک زمینه ساخت (build context) مشخص:
dune runtest _build/my_context/
Dune 3.24.2