تست در اندروید استودیو

اندروید استودیو برای ساده کردن تست طراحی شده است. این شامل ویژگی های بسیاری برای ساده سازی نحوه ایجاد، اجرا و تجزیه و تحلیل تست ها است. می‌توانید آزمایش‌هایی را تنظیم کنید که روی دستگاه محلی شما اجرا شوند یا آزمایش‌های ابزاردار که روی دستگاه اجرا می‌شوند. شما به راحتی می توانید یک تست یا گروه خاصی از تست ها را روی یک یا چند دستگاه اجرا کنید. نتایج آزمایش مستقیماً در Android Studio نشان داده می شود.

شکل 1. اندروید استودیو نمای کلی نتایج آزمون را نشان می دهد.

این صفحه درباره نحوه مدیریت تست ها در اندروید استودیو است. برای یادگیری نحوه نوشتن تست‌های خودکار Android، به تست برنامه‌ها در Android مراجعه کنید.

انواع و مکان های تست

محل آزمون های شما به نوع آزمونی که می نویسید بستگی دارد. پروژه‌های اندروید دارای دایرکتوری کد منبع پیش‌فرض برای تست‌های واحد محلی و تست‌های ابزاری هستند.

تست های واحد محلی در module-name /src/ test /java/ قرار دارند. اینها آزمایشاتی هستند که روی ماشین مجازی جاوا (JVM) محلی دستگاه شما اجرا می شوند. از این تست‌ها برای به حداقل رساندن زمان اجرا در زمانی که تست‌های شما وابستگی فریمورک اندرویدی ندارند یا زمانی که می‌توانید دو تست برای وابستگی‌های چارچوب Android ایجاد کنید، استفاده کنید. برای اطلاعات بیشتر در مورد نحوه نوشتن تست‌های واحد محلی، به ساخت تست‌های واحد محلی مراجعه کنید.

تست های ابزاری در $module-name /src/ androidTest /java/ قرار دارند. این تست ها بر روی یک دستگاه سخت افزاری یا شبیه ساز اجرا می شوند. آنها به Instrumentation API دسترسی دارند که به شما امکان می دهد به اطلاعاتی مانند کلاس Context در برنامه ای که در حال آزمایش هستید دسترسی داشته باشید و به شما امکان می دهد برنامه تحت آزمایش را از طریق کد آزمایشی خود کنترل کنید. آزمایش‌های ابزاری در یک APK جداگانه ساخته شده‌اند، بنابراین فایل AndroidManifest.xml خود را دارند. این فایل به صورت خودکار تولید می شود، اما می توانید نسخه خود را در $module-name /src/ androidTest /AndroidManifest.xml ایجاد کنید که با مانیفست تولید شده ادغام خواهد شد. هنگام نوشتن تست‌های یکپارچه‌سازی و رابط کاربری کاربردی برای خودکار کردن تعامل با کاربر، یا زمانی که تست‌های شما وابستگی‌هایی به Android دارند که نمی‌توانید دو برابر آزمایشی برای آنها ایجاد کنید، از تست‌های ابزاردار استفاده کنید. برای اطلاعات بیشتر در مورد نحوه نوشتن تست‌های ابزاردار، به ساخت تست‌های ابزاردار و تست‌های خودکار رابط کاربری مراجعه کنید.

می‌توانید آزمایش‌های خود را در دایرکتوری‌های خاص نوع ساخت قرار دهید تا فقط انواع ساخت‌های خاص را آزمایش کنید. برای مثال، می‌توانید برخی از تست‌های واحد محلی را در $module-name /src/ testMyFlavor /java/ قرار دهید تا آزمایش‌ها برنامه شما را که با کد منبع این طعم ساخته شده است، هدف قرار دهند. برای اطلاعات بیشتر در مورد نحوه ایجاد این تست‌های سفارشی، به ایجاد یک تست ابزاری برای یک نوع ساخت مراجعه کنید.

هنگامی که یک پروژه جدید ایجاد می‌کنید یا یک ماژول برنامه اضافه می‌کنید، Android Studio مجموعه‌های منبع آزمایشی فهرست شده قبلی را ایجاد می‌کند و در هر کدام یک نمونه فایل آزمایشی را شامل می‌شود. همانطور که در شکل 2 نشان داده شده است می توانید آنها را در پنجره Project مشاهده کنید.

شکل 2. (1) تست های ابزاری پروژه شما و (2) تست های محلی JVM در نمای پروژه (چپ) یا نمای اندروید (راست) قابل مشاهده هستند.

تست های جدید ایجاد کنید

با دنبال کردن مراحل زیر می‌توانید یک آزمایش جدید برای یک کلاس یا متد خاص مستقیماً از کد منبع آن اضافه کنید:

  1. فایل منبع حاوی کدی را که می خواهید آزمایش کنید باز کنید.
  2. مکان نما خود را در نام کلاس یا روشی که می خواهید آزمایش کنید قرار دهید و Control+Shift+T ( Command+Shift+T در macOS) را فشار دهید.
  3. در پنجره باز شده روی Create New Test کلیک کنید…
  4. در گفتگوی Create Test ، JUnit4 را انتخاب کنید، فیلدها و روش هایی را که می خواهید ایجاد کنید ویرایش کنید و سپس روی OK کلیک کنید.
  5. در گفتگوی Choose Destination Directory ، روی مجموعه منبع مربوط به نوع آزمایشی که می‌خواهید ایجاد کنید کلیک کنید: AndroidTest برای یک تست ابزاری یا تست برای یک تست واحد محلی. سپس روی OK کلیک کنید.

همچنین، می‌توانید یک فایل آزمایشی عمومی در مجموعه منبع آزمایشی مناسب به صورت زیر ایجاد کنید:

  1. در پنجره Project در سمت چپ، روی منوی کشویی کلیک کنید و نمای Android را انتخاب کنید.
  2. روی فهرست جاوا کلیک راست کرده و New > Java Class یا New > Kotlin Class/File را انتخاب کنید. همچنین می‌توانید دایرکتوری جاوا را انتخاب کنید و از میانبر Control+N ( Command+N در macOS) استفاده کنید.
  3. در گفتگوی Choose Destination Directory ، روی مجموعه منبع مربوط به نوع آزمایشی که می‌خواهید ایجاد کنید کلیک کنید: AndroidTest برای یک تست ابزاری یا تست برای یک تست واحد محلی. سپس روی OK کلیک کنید.
  4. فایل را نامگذاری کنید و سپس روی OK کلیک کنید.

اگر برنامه شما پس از افزودن یک آزمایش کامپایل نمی‌شود، مطمئن شوید که وابستگی‌های کتابخانه آزمایشی درست را تنظیم کرده‌اید. برای وابستگی های صحیح ، به ساخت تست های محلی و ساخت تست های ابزاردار مراجعه کنید.

تست ها را اجرا کنید

قبل از اجرای هر آزمایشی، با کلیک روی Sync Project ، مطمئن شوید که پروژه شما به طور کامل با Gradle همگام شده است. در نوار ابزار می توانید تست هایی را با سطوح مختلف دانه بندی اجرا کنید:

  • برای اجرای تمام تست ها در یک دایرکتوری یا فایل ، پنجره Project را باز کنید و یکی از موارد زیر را انجام دهید:

    • روی یک پوشه یا فایل کلیک راست کرده و روی Run کلیک کنید .
    • دایرکتوری یا فایل را انتخاب کنید و از میانبر Control+Shift+R استفاده کنید.
  • برای اجرای تمام تست ها در یک کلاس یا یک متد خاص ، فایل تست را در ویرایشگر کد باز کنید و یکی از کارهای زیر را انجام دهید:

    • نماد Run test را فشار دهید در ناودان .
    • روی کلاس یا متد تست کلیک راست کرده و Run را بزنید .
    • کلاس یا روش تست را انتخاب کنید و از میانبر Control+Shift+R استفاده کنید.

تست های ابزاری شما بر روی یک دستگاه فیزیکی یا شبیه ساز اجرا می شود. برای اطلاعات بیشتر درباره راه‌اندازی دستگاه‌های فیزیکی، به اجرای برنامه‌ها در دستگاه سخت‌افزاری مراجعه کنید. برای کسب اطلاعات بیشتر درباره راه‌اندازی شبیه‌سازها، به اجرای برنامه‌ها در شبیه‌ساز Android مراجعه کنید.

اجرای آزمایشی را پیکربندی کنید

به‌طور پیش‌فرض، آزمایش‌های شما با استفاده از پیکربندی اجرای پیش‌فرض Android Studio اجرا می‌شوند. اگر نیاز به تغییر برخی از تنظیمات اجرا دارید، مانند گزینه‌های راه‌انداز ابزار دقیق و استقرار، می‌توانید پیکربندی اجرا را در گفتگوی Run/Debug Configurations ویرایش کنید (روی Run > Edit Configurations را کلیک کنید).

دونده آزمون یکپارچه Gradle

پلاگین Android Gradle نسخه 7.1.0 و Android Studio Bumblebee و بالاتر از پیاده‌سازی خود Gradle از برنامه آزمایشی ابزاردار اندروید برای اجرای تست‌های ابزاری استفاده می‌کنند. با استفاده از اجرای آزمایشی یکسان، چه با استفاده از AGP از خط فرمان، مانند یک سرور یکپارچه سازی پیوسته، یا از Android Studio، نتایج را به احتمال زیاد ثابت کنند.

شکل 3. دونده آزمون Unified Gradle.

نسخه‌های قبلی اندروید استودیو به‌جای دونده آزمایشی مجهز به اندروید Gradle، از تست دونده IntelliJ اندرویدی استفاده می‌کردند. بنابراین اگر از آخرین نسخه اندروید استودیو استفاده نمی‌کنید، بسته به اینکه تست‌های خود را از اندروید استودیو اجرا کنید یا از طریق خط فرمان با استفاده از افزونه Gradle، ممکن است نتایج تست متفاوتی را مشاهده کنید، مانند تست‌هایی که با استفاده از یک runner موفق می‌شوند و رد می‌شوند. روی دیگری

شکل 4. دونده های آزمایشی گسسته در نسخه های قدیمی اندروید استودیو.

اگر قبلاً پیکربندی‌های تست ابزاری را در پروژه خود ذخیره کرده‌اید، از Gradle برای اجرای آزمایش‌ها روی دستگاه متصل شما استفاده می‌کنند. همانطور که در زیر نشان داده شده است، می توانید یک پیکربندی تست ابزاردار جدید با استفاده از عمل ناودان در کنار کلاس یا روش تست خود ایجاد کنید.

شکل 5. آزمایشات را از عمل ناودان اجرا کنید.

هنگام اجرای تست‌های ابزاری خود، می‌توانید با بررسی خروجی تست در خروجی تست ماتریس برای Gradle، تأیید کنید که Android Studio از اجرای آزمایشی Gradle استفاده می‌کند.

اجرا در چندین دستگاه به صورت موازی

تست های ابزاری به طور پیش فرض روی یک دستگاه فیزیکی یا شبیه ساز اجرا می شوند. اگر می‌خواهید ببینید آزمایش‌های شما در مجموعه بزرگ‌تری از دستگاه‌ها چگونه عمل می‌کنند، می‌توانید با دنبال کردن این مراحل دستگاه‌های بیشتری را انتخاب کنید:

  1. قبل از اجرای آزمایش‌های خود، منوی کشویی دستگاه مورد نظر را باز کرده و Select Multiple Devices را انتخاب کنید.

    شکل 6. منوی کشویی Multiple Devices را انتخاب کنید.

  2. دستگاه های مورد نظر را انتخاب کرده و روی OK کلیک کنید.

  3. اطمینان حاصل کنید که متن موجود در منوی کشویی هدف به چندین دستگاه تغییر کرده و روی Run کلیک کنید .

  4. پنجره ابزار Test Matrix نتایج آزمایش را برای هر پیکربندی دستگاه انتخاب شده نشان می دهد.

    شکل 7. نتایج آزمایش در پنجره ابزار Test Matrix.

  5. می توانید روی یک تست خاص کلیک کنید تا نتیجه را در پنجره خروجی بررسی کنید. همچنین می توانید با کلیک بر روی ستون های مختلف تست ها را مرتب کنید.

با Firebase Test Lab اجرا کنید

با استفاده از Firebase Test Lab ، می‌توانید همزمان برنامه خود را بر روی بسیاری از دستگاه‌ها و پیکربندی‌های دستگاه Android محبوب (ترکیب‌های مختلف محلی، جهت‌گیری، اندازه صفحه، و نسخه پلتفرم) آزمایش کنید. این آزمایش‌ها بر روی دستگاه‌های فیزیکی و مجازی در مراکز داده از راه دور Google اجرا می‌شوند. نتایج آزمایش گزارش‌های آزمایشی را ارائه می‌کند و جزئیات مربوط به هر گونه خرابی برنامه را شامل می‌شود.

برای شروع استفاده از Firebase Test Lab، باید موارد زیر را انجام دهید:

  1. اگر قبلاً ندارید یک حساب Google ایجاد کنید .
  2. در کنسول Firebase ، روی ایجاد پروژه جدید کلیک کنید.

Android Studio ابزارهای یکپارچه ای را ارائه می دهد که به شما امکان می دهد نحوه اجرای آزمایشات خود را در Firebase Test Lab پیکربندی کنید. پس از ایجاد یک پروژه Firebase، می توانید یک پیکربندی آزمایشی ایجاد کنید و آزمایش های خود را اجرا کنید:

  1. از منوی اصلی روی Run > Edit Configurations کلیک کنید.
  2. روی Add New Configuration کلیک کنید و Android Instrumented Tests را انتخاب کنید.
  3. جزئیات آزمون خود را وارد یا انتخاب کنید، مانند نام آزمون، نوع ماژول، نوع آزمون و کلاس آزمون.
  4. از منوی کشویی Target در زیر Deployment Target Options ، Firebase Test Lab Device Matrix را انتخاب کنید.
  5. اگر وارد نشده اید، روی Sign in with Google کلیک کنید و اجازه دهید Android Studio به حساب شما دسترسی پیدا کند.
  6. در کنار Cloud Project ، پروژه Firebase خود را از لیست انتخاب کنید.
  7. در کنار پیکربندی Matrix ، یکی از تنظیمات پیش‌فرض را از منوی کشویی انتخاب کنید یا با فشار دادن Open Dialog پیکربندی خود را ایجاد کنید. . می‌توانید یک یا چند دستگاه، نسخه‌های Android، مناطق محلی و جهت‌گیری صفحه را که می‌خواهید برنامه خود را با آن‌ها آزمایش کنید، انتخاب کنید. Firebase Test Lab برنامه شما را در برابر هر ترکیبی از انتخاب های شما هنگام ایجاد نتایج آزمایش آزمایش می کند.
  8. در گفتگوی Run/Debug Configurations روی OK کلیک کنید تا از آن خارج شوید.
  9. تست های خود را با کلیک روی Run اجرا کنید .

شکل 8. ایجاد یک پیکربندی آزمایشی برای Firebase Test Lab.

نتایج آزمون را تجزیه و تحلیل کنید

هنگامی که Firebase Test Lab اجرای آزمایشات شما را کامل کرد، پنجره Run برای نمایش نتایج باز می شود، همانطور که در شکل 9 نشان داده شده است. ممکن است لازم باشد روی Show Passed کلیک کنید. برای دیدن تمام تست های اجرا شده شما

شکل 9. نتایج آزمون های ابزاردار با استفاده از آزمایشگاه تست Firebase.

همچنین می توانید با دنبال کردن پیوندی که در ابتدای گزارش اجرای آزمون در پنجره Run نمایش داده شده است، تست های خود را در وب تجزیه و تحلیل کنید.

مشاهده پوشش آزمون

ابزار پوشش تست برای تست‌های واحد محلی برای ردیابی درصد و مناطقی از کد برنامه شما که تست‌های واحد شما پوشش داده‌اند در دسترس است. از ابزار پوشش تست برای تعیین اینکه آیا عناصر، کلاس‌ها، روش‌ها و خطوط کدی که برنامه شما را تشکیل می‌دهند به اندازه کافی آزمایش کرده‌اید یا خیر، استفاده کنید.

برای اجرای تست‌های دارای پوشش، همان مراحلی را که در تست‌های اجرا توضیح داده شد، دنبال کنید، فقط به جای کلیک بر روی Run ، روی Run test-name with coverage کلیک کنید . در پنجره Project ، این گزینه ممکن است در پشت More Run/Debug پنهان باشد. همچنین می‌توانید تنظیمات پوشش را در گفتگوی Run/Debug Configurations ، در زبانه Code Coverage پیکربندی کنید.

شکل 10. درصد پوشش کد برای یک برنامه.

مشاهده نتایج آزمون

هنگامی که یک یا چند تست را از Android Studio اجرا می کنید، نتایج در پنجره Run ظاهر می شوند. شکل 11 یک اجرای آزمایشی موفق را نشان می دهد.

شکل 11. نتایج آزمایش در پنجره Run ظاهر می شود.

پنجره Run تست ها را در نمای درختی در سمت چپ و نتایج و پیام های مجموعه آزمایشی فعلی را در پنجره خروجی سمت راست نمایش می دهد. از نوار ابزار، منوهای زمینه و نمادهای وضعیت برای مدیریت نتایج آزمون به شرح زیر استفاده کنید:

  1. از نوار ابزار اجرا برای اجرای مجدد تست جاری، توقف آزمایش فعلی، اجرای مجدد تست های ناموفق (نشان داده نشده است زیرا فقط برای تست های واحد در دسترس است)، توقف خروجی و حذف رشته ها استفاده کنید.
  2. از نوار ابزار تست برای فیلتر کردن و مرتب کردن نتایج تست استفاده کنید. همچنین می‌توانید گره‌ها را گسترش یا جمع کنید، پوشش آزمایشی را نشان دهید و نتایج آزمایش را وارد یا صادر کنید.
  3. برای ردیابی آزمایش در حال اجرا، نمایش آمار درون خطی، اسکرول به ردیابی پشته، باز کردن کد منبع در یک استثنا، اسکرول خودکار به منبع، و انتخاب اولین آزمایش ناموفق پس از اتمام اجرای آزمایشی، روی منوی زمینه کلیک کنید.
  4. نمادهای وضعیت آزمایش نشان می دهد که آیا آزمایشی خطا دارد، نادیده گرفته شد، ناموفق بود، در حال انجام است، قبول شده است، متوقف شده است، پایان یافته است یا اجرا نشده است.
  5. روی یک خط در نمای درختی کلیک راست کنید تا منوی زمینه نمایش داده شود که به شما امکان می‌دهد تست‌ها را در حالت اشکال زدایی اجرا کنید، فایل کد منبع آزمایشی را باز کنید یا به خط کد منبع مورد آزمایش بروید.

شکست های تست را تجزیه و تحلیل کنید

هنگامی که یک یا چند آزمایش شما با شکست مواجه می شود، پنجره نتایج یک علامت هشدار و تعداد خطاها را نشان می دهد (به عنوان مثال، "تست ها ناموفق: 1"):

شکل 12. جزئیات تست ناموفق در پنجره خروجی.

وقتی روی تست شکست در نمای درختی در سمت چپ کلیک می‌کنید، پنجره خروجی سمت راست جزئیات آن تست را نشان می‌دهد. مقدار مورد انتظار را در کنار مقدار واقعی نشان می دهد، بنابراین می توانید آنها را با هم مقایسه کنید. پیوند کلیک کنید تا تفاوت را مشاهده کنید ، نمایشگر متفاوتی را باز می کند که در آن می توانید نتایج را در کنار هم ببینید.

بیشتر بدانید

این صفحه مراحل اولیه ای را که باید هنگام ایجاد و اجرای اولین آزمایش خود با استفاده از Android Studio دنبال کنید، پوشش می دهد. همچنین می‌توانید آزمایش‌ها را از خط فرمان اجرا کنید . همچنین می توانید مستندات IntelliJ را در مورد آزمایش بررسی کنید. برای اطلاعات بیشتر در مورد نحوه پیکربندی تست‌های خود هنگام ایجاد یک مجموعه آزمایشی بزرگ‌تر، به تنظیمات تست پیشرفته مراجعه کنید.