| 👀 خبر در یک نگاه:
Vitest ۴.۰ با قابلیتهای کلیدی مثل حالت پایدار مرورگر، تست پسرفت بصری، پشتیبانی از Playwright Traces و ابزارهای دیباگ بهتر منتشر شد. این نسخه شامل تغییرات سازنده و مسیر مهاجرت است. با وجود برخی باگهای کوچک گزارششده، سرعت رشد Vitest چشمگیر بوده و اکنون یک راهکار تست کاملتر محسوب میشود. |
Vitest، فریمورک تست بومی Vite، نسخه ۴.۰ را منتشر کرده و بهبودهایی در تست مبتنی بر مرورگر، قابلیتهای تست پسرفت بصری و تجربه توسعهدهنده ارائه داده است.
Vitest ۴.۰ چند قابلیت مهم معرفی میکند؛ از جمله خروج حالت مرورگر از وضعیت آزمایشی و تبدیل شدن آن به نسخه پایدار، پشتیبانی داخلی از تست پسرفت بصری، یکپارچهسازی با Playwright Traces و قابلیتهای بهتر برای دیباگ. این نسخه شامل تغییرات سازنده نیز هست و توسعهدهندهها باید قبل از بهروزرسانی، مسیر مهاجرت را بررسی کنند.
یک ویژگی مهم در Vitest ۴.۰ پایدار شدن حالت مرورگر است که پیشتر در وضعیت آزمایشی قرار داشت. این قابلیت به توسعهدهندهها اجازه میدهد تستها را در مرورگرهای واقعی اجرا کنند، نه در محیطهای شبیهسازیشده مثل jsdom یا happy-dom؛ چیزی که نتیجه تستها را واقعیتر میکند. برای استفاده از حالت مرورگر، توسعهدهندهها باید بستههای ارائهدهنده جداگانه مثل @vitest/browser-playwright، @vitest/browser-webdriverio یا @vitest/browser-preview را نصب کنند. این تغییر کار با تنظیمات سفارشی را سادهتر کرده و نیاز به directive های مرجع TypeScript را از بین میبرد.
محل import مربوط به context نیز تغییر کرده است. در گذشته از @vitest/browser/context وارد میشد اما اکنون توسعهدهندهها باید آن را مستقیما از vitest/browser وارد کنند. البته برای حفظ سازگاری، مسیر قبلی تا نسخه اصلی بعدی همچنان کار خواهد کرد.
تست پسرفت بصری در Vitest ۴.۰ با استفاده از assertion مربوط به toMatchScreenshot انجام میشود. Vitest از رابط کاربری یا صفحهها اسکرینشات میگیرد و آنها را با تصاویر مرجع مقایسه میکند تا تغییرات ناخواسته بصری شناسایی شوند. همراه این قابلیت، Vitest matcher جدیدی با نام toBeInViewport معرفی کرده که به توسعهدهندهها اجازه میدهد با استفاده از API مربوط به IntersectionObserver بررسی کنند آیا یک المان در محدوده دید کاربر قرار دارد یا نه.
Vitest ۴.۰ از تولید Playwright Traces برای تستهای مرورگر پشتیبانی میکند. توسعهدهندهها میتوانند با تنظیم گزینه trace در پیکربندی test.browser یا با ارسال پرچم browser.trace، این قابلیت را فعال کنند. حالتهای مختلف شامل on، off، on-first-retry، on-all-retries و retain-on-failure هستند. این ردیابیها در گزارشگرها بهصورت annotation در دسترساند و با استفاده از Playwright Trace Viewer قابل مشاهده هستند.
افزونه VS Code اکنون هنگام اجرای تستهای مرورگر از دکمه Debug Test پشتیبانی میکند و تجربه دیباگ را بهتر میکند. توسعهدهندهها همچنین میتوانند هنگام استفاده از provider های playwright و webdriverio، Vitest را با فلگ inspect اجرا کنند تا بتوانند بهصورت دستی به DevTools متصل شوند.
در بخش گزارشگرها، گزارشگر basic حذف شده و میتوان آن را با گزارشگر پیشفرض و تنظیم summary: false جایگزین کرد. گزارشگر پیشفرض اکنون فقط هنگام اجرای یک فایل تست، خروجی را بهصورت درختی چاپ میکند. برای کسانی که همیشه نمایش درختی را ترجیح میدهند، گزارشگر جدیدی با نام tree ارائه شده است. گزارشگر verbose نیز از این پس همیشه تستها را بهصورت تکبهتک پس از اتمام چاپ میکند؛ در حالی که پیشتر این رفتار فقط در محیطهای CI رخ میداد.
بازخورد جامعه نسبت به Vitest ۴.۰ چند نکته مهم را برجسته کرده است. یکی از کاربران ردیت اشاره کرده که وجود تست پسرفت بصری بهصورت داخلی یعنی یک وابستگی کمتر نسبت به ابزارهای جانبی مثل Percy یا Chromatic. همین توسعهدهنده از بهبود تجربه توسعهدهنده نیز تعریف کرده و گفته عملکرد watch mode در تمام مدت بهتر از Jest بوده و Vitest اکنون مثل یک راهکار تست کاملتر احساس میشود؛ راهکاری که امکاناتی را ارائه میدهد که پیشتر نیازمند ابزارهای جداگانه بودند.
با این حال، برخی توسعهدهندهها هنگام ارتقا با مشکل مواجه شدهاند. در یک گزارش اخیر در گیتهاب، هنگام استفاده از Vitest ۴.x همراه با نسخههای ۷.۱.۰ یا پایینتر Vite، خطای TypeScript دیده میشود؛ با وجود اینکه Vitest ۴.x نسخههای ^6.0.0 و ^7.0.0 وایت را بهعنوان وابستگیهای سازگار فهرست کرده است. این خطا مربوط به نبودن ویژگی createImportMeta در ModuleRunnerOptions است و فقط زمانی رخ میدهد که فایل vitest.config.ts در محدوده پردازش TypeScript قرار بگیرد. این مشکل بهعنوان یک باگ کوچک که الگوهای استفاده خاص را تحت تأثیر قرار میدهد، برچسبگذاری شده است.
Vitest ۴.۰ شامل تغییرات سازندهای است که ممکن است روی پروژههای موجود تاثیر بگذارد. تیم Vitest برای کمک به توسعهدهندهها در مهاجرت از نسخههای قبلی، یک راهنمای مهاجرت جامع منتشر کرده است. فهرست کامل تغییرات نیز در فایل تغییرات نسخه ۴ Vitest در گیتهاب موجود است.
بر اساس گزارش وبلاگ VoidZero، میزان استفاده از Vitest طی سال گذشته از ۷ میلیون به ۱۷ میلیون دانلود هفتگی رسیده است.
Vitest یک فریمورک تست متنباز است که برای پروژههای Vite توسعه داده شده اما میتواند بهصورت مستقل نیز استفاده شود. این ابزار APIهای سازگار با Jest ارائه میکند؛ از جمله expect، snapshot و قابلیتهای پوششدهی تست. همچنین با پشتیبانی سطحاول از ESM، TypeScript و JSX که بهوسیله esbuild تقویت شدهاند، کار میکند.
منبع: infoq.com




دیدگاهتان را بنویسید