.\" generated with Ronn-NG/v0.10.1 .\" http://github.com/apjanke/ronn-ng/tree/0.10.1 .TH "BATS" "1" "July 2026" "bats-core" "Bash Automated Testing System" .SH "نام (NAME)" bats \- سامانه خودکار اجرای آزمونهای بش (Bash Automated Testing System) .SH "خلاصه دستور (SYNOPSIS)" \fBbats\fR [\fIگزینه‌ها\fR] \fIآزمون‌ها\fR .br \fBbats\fR [\fB\-h\fR | \fB\-v\fR] .P \fIآزمون‌ها\fR مسیر یک فایل آزمون Bats، یا مسیر پوشه‌ای شامل فایل‌های آزمون Bats (با پسوند "\.bats") است\. .SH "توضیحات (DESCRIPTION)" Bats یک چارچوب آزمون سازگار با TAP برای Bash است\. این ابزار روشی ساده برای بررسی اینکه برنامه‌های یونیکسی که می‌نویسید مطابق انتظار رفتار می‌کنند، فراهم می‌سازد\. .P یک فایل آزمون Bats یک اسکریپت Bash با ساختار نحوی ویژه برای تعریف موارد آزمون (test cases) است\. در پشت صحنه، هر مورد آزمون صرفاً یک تابع به همراه یک توضیح است\. .P موارد آزمون از دستورات استاندارد شل تشکیل شده‌اند\. Bats هنگام اجرای موارد آزمون از گزینه .B errexit (\fBset \-e\fR) در Bash استفاده می‌کند\. اگر تمام دستورات موجود در مورد آزمون با کد وضعیت .B 0 (موفقیت) پایان یابند، آزمون پذیرفته می‌شود\. بدین ترتیب، هر خط از کد یک گزاره شرطی (assertion) برای درستی عملکرد است\. .P برای اطلاعات بیشتر در مورد نوشتن آزمون‌های Bats، به .BR bats (7) مراجعه کنید\. .SH "اجرای آزمون‌ها (RUNNING TESTS)" برای اجرای آزمون‌های خود، مفسر .B bats را با مسیر یک فایل آزمون فراخوانی کنید\. موارد آزمون موجود در فایل به‌صورت متوالی و در محیط ایزوله اجرا می‌شوند\. اگر تمام موارد آزمون با موفقیت سپری شوند، .B bats با کد وضعیت .B 0 خارج می‌شود\. در صورت وجود هرگونه شکست یا خطا، .B bats با کد وضعیت .B 1 خارج خواهد شد\. .P شما می‌توانید مفسر .B bats را با چندین آرگومان فایل آزمون، یا با مسیر پوشه‌ای حاوی چندین فایل .B \.bats فراخوانی کنید\. Bats هر فایل آزمون را به‌طور جداگانه اجرا کرده و نتایج را تجمیع می‌نماید\. در صورت شکست هر یک از موارد آزمون، .B bats با کد وضعیت .B 1 خارج می‌شود\. .SH "فیلتر کردن آزمون‌ها (FILTERING TESTS)" سازوکارهای متعددی برای فیلتر کردن آزمون‌های اجرایی وجود دارد: .IP "\(bu" 4 \fB\-\-filter \fR برای فیلتر بر اساس نام آزمون .IP "\(bu" 4 \fB\-\-filter\-status \fR برای فیلتر بر اساس وضعیت آزمون در آخرین اجرا .IP "\(bu" 4 \fB\-\-filter\-tags \fR برای فیلتر بر اساس برچسب‌های آزمون .IP "" 0 .SH "\-\-FILTER\-TAGS TAG\-LIST" برچسب‌ها می‌توانند برای فیلتر دقیق آزمون‌های اجرایی از طریق گزینه \fB\-\-filter\-tags\fR استفاده شوند\. این گزینه فهرستی از برچسب‌ها را که با کاما از هم جدا شده‌اند می‌پذیرد\. تنها آزمون‌هایی اجرا خواهند شد که با تمامی این برچسب‌ها مطابقت داشته باشند\. برای نمونه، \fBbats \-\-filter\-tags a,b,c\fR آزمون‌های دارای برچسب‌های \fBa,b,c\fR را اجرا می‌کند، اما آزمون‌هایی را که فاقد یک یا چند مورد از این برچسب‌ها باشند اجرا نخواهد کرد\. .P علاوه بر این، می‌توانید با \fBbats \-\-filter\-tags a,!b,c\fR برچسب‌های منفی مشخص کنید؛ در این صورت به‌دلیل وجود \fBb\fR، آزمون‌های دارای برچسب‌های \fBa,b,c\fR انتخاب نمی‌شوند، اما آزمون‌های دارای \fBa,c\fR انتخاب خواهند شد\. به‌بیان دقیق‌تر، \fB\-\-filter\-tags\fR یک عطف منطقی (AND) است\. .P برای امکان‌پذیر ساختن پرس‌وجوهای پیچیده‌تر، می‌توانید چندین بار از گزینه \fB\-\-filter\-tags\fR استفاده کنید\. یک آزمون در صورتی اجرا می‌شود که با دست‌کم یکی از آن‌ها مطابقت داشته باشد\. این یعنی چند گزینه \fB\-\-filter\-tags\fR یک فصل منطقی (OR) تشکیل می‌دهند\. .P پرس‌وجوی \fB\-\-filter\-tags a,!b \-\-filter\-tags b,c\fR را می‌توان چنین ترجمه کرد: تنها آزمون‌هایی را اجرا کن که (دارای برچسب a باشند و برچسب b را نداشته باشند) یا (دارای هر دو برچسب b و c باشند)\. .P یک فهرست برچسب خالی با آزمون‌های بدون برچسب مطابقت دارد\. .SH "گزینه‌ها (OPTIONS)" .IP "\(bu" 4 \fB\-\-abort\fR: توقف اجرای مجموعه آزمون در اولین شکست آزمون .IP "\(bu" 4 \fB\-\-allow\-empty\-suite\fR: خروج با کد ۰ (به‌جای کد پیش‌فرض ۱) در صورتی که هیچ آزمونی یافت نشود\. .IP "\(bu" 4 \fB\-c\fR, \fB\-\-count\fR: شمارش تعداد موارد آزمون بدون اجرای آزمون‌ها .IP "\(bu" 4 \fB\-\-code\-quote\-style