پرش به محتوای اصلی

سرویس الکترون

wdio-electron-service یک پکیج شخص ثالث است، برای اطلاعات بیشتر لطفاً به GitHub | npm مراجعه کنید


سرویس WebdriverIO برای تست برنامه‌های الکترون

امکان تست E2E چند پلتفرمی برنامه‌های الکترون را از طریق اکوسیستم گسترده WebdriverIO فراهم می‌کند.

جانشین معنوی Spectron (RIP).

ویژگی‌ها

تست برنامه‌های الکترون را بسیار آسان‌تر می‌کند از طریق:

  • 🚗 راه‌اندازی خودکار Chromedriver مورد نیاز (برای الکترون نسخه ۲۶ و بالاتر)
  • 📦 تشخیص خودکار مسیر برنامه الکترون شما
  • 🧩 دسترسی به API‌های الکترون در تست‌های خود
  • 🕵️ شبیه‌سازی API‌های الکترون از طریق یک API شبیه به Vitest

نصب

شما نیاز به نصب WebdriverIO دارید، دستورالعمل‌ها را می‌توانید اینجا پیدا کنید.

شروع سریع

روش توصیه شده برای راه‌اندازی سریع، استفاده از ویزارد پیکربندی WDIO است.

شروع سریع دستی

برای شروع بدون استفاده از ویزارد پیکربندی، شما نیاز به نصب سرویس و @wdio/cli دارید:

npm install --dev @wdio/cli wdio-electron-service

یا از مدیر بسته مورد نظر خود استفاده کنید - pnpm، yarn و غیره.

سپس، فایل پیکربندی WDIO خود را ایجاد کنید. اگر به الهام نیاز دارید، یک پیکربندی کارآمد در دایرکتوری نمونه این مخزن وجود دارد، همچنین صفحه مرجع پیکربندی WDIO.

شما باید electron را به آرایه سرویس‌های خود اضافه کرده و یک قابلیت الکترون تنظیم کنید، مثلاً:

wdio.conf.ts

export const config = {
// ...
services: ['electron'],
capabilities: [
{
browserName: 'electron',
},
],
// ...
};

در نهایت، تست‌هایی را اجرا کنید با استفاده از فایل پیکربندی خود.

این یک نمونه از برنامه شما را به همان روشی که WDIO مرورگرهایی مانند Chrome یا Firefox را مدیریت می‌کند، راه‌اندازی می‌کند. این سرویس با WDIO (parallel) multiremote کار می‌کند اگر نیاز به اجرای چندین نمونه همزمان دارید، مثلاً چندین نمونه از برنامه شما یا ترکیب‌های مختلف برنامه شما و یک مرورگر وب.

اگر از Electron Forge یا Electron Builder برای بسته‌بندی برنامه خود استفاده می‌کنید، سرویس به طور خودکار تلاش می‌کند مسیر برنامه الکترون بسته‌بندی شده شما را پیدا کند. می‌توانید از طریق قابلیت‌های سرویس سفارشی، یک مسیر سفارشی به باینری ارائه دهید، مثلاً:

wdio.conf.ts

export const config = {
// ...
capabilities: [
{
'browserName': 'electron',
'wdio:electronServiceOptions': {
appBinaryPath: './path/to/built/electron/app.exe',
appArgs: ['foo', 'bar=baz'],
},
},
],
// ...
};

برای یافتن مقدار appBinaryPath خود برای سیستم‌عامل‌های مختلف پشتیبانی شده توسط الکترون، به مستندات پیکربندی مراجعه کنید.

به طور جایگزین، می‌توانید سرویس را به یک برنامه بسته‌بندی نشده با ارائه مسیر به اسکریپت main.js هدایت کنید. الکترون باید در node_modules شما نصب شده باشد. توصیه می‌شود برنامه‌های بسته‌بندی نشده را با استفاده از یک بسته‌بندی مانند Rollup، Parcel، Webpack و غیره بسته‌بندی کنید.

wdio.conf.ts

export const config = {
// ...
capabilities: [
{
'browserName': 'electron',
'wdio:electronServiceOptions': {
appEntryPoint: './path/to/bundled/electron/main.bundle.js',
appArgs: ['foo', 'bar=baz'],
},
},
],
// ...
};

پیکربندی Chromedriver

اگر برنامه شما از نسخه‌ای از الکترون استفاده می‌کند که کمتر از نسخه ۲۶ است، شما نیاز به پیکربندی دستی Chromedriver دارید.

این به دلیل آن است که WDIO از Chrome for Testing برای دانلود Chromedriver استفاده می‌کند، که فقط نسخه‌های Chromedriver ۱۱۵ یا جدیدتر را ارائه می‌دهد.

مستندات

پیکربندی سرویس
پیکربندی Chromedriver
دسترسی به API‌های الکترون
شبیه‌سازی API‌های الکترون
مدیریت پنجره
حالت مستقل
توسعه
مشکلات رایج و اشکال‌زدایی

توسعه

اگر علاقه‌مند به مشارکت هستید، مستندات توسعه را مطالعه کنید.

نمونه‌های یکپارچه‌سازی

پروژه Electron boilerplate ما را بررسی کنید که نشان می‌دهد چگونه WebdriverIO را در یک برنامه نمونه یکپارچه کنید. همچنین می‌توانید به دایرکتوری‌های برنامه‌های نمونه و E2Es در این مخزن نگاهی بیندازید.

پشتیبانی

اگر در اجرای WDIO با این سرویس مشکل دارید، ابتدا باید مشکلات رایج مستند شده را بررسی کنید، سپس یک بحث در انجمن اصلی WDIO باز کنید.

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

Welcome! How can I help?

WebdriverIO AI Copilot