انتقل إلى المحتوى الرئيسي

خدمة إلكترون

wdio-electron-service هي حزمة من طرف ثالث، لمزيد من المعلومات يرجى الاطلاع على GitHub | npm


خدمة WebdriverIO لاختبار تطبيقات إلكترون

تمكّن من اختبار تطبيقات إلكترون عبر المنصات المختلفة من خلال نظام WebdriverIO الشامل.

الخلف الروحي لـ Spectron (RIP).

الميزات

يجعل اختبار تطبيقات إلكترون أسهل بكثير من خلال:

  • 🚗 الإعداد التلقائي للـ Chromedriver المطلوب (لإلكترون الإصدار 26 وما فوق)
  • 📦 الكشف التلقائي عن مسار تطبيق إلكترون الخاص بك
  • 🧩 الوصول إلى واجهات برمجة تطبيقات إلكترون داخل اختباراتك
  • 🕵️ محاكاة واجهات برمجة تطبيقات إلكترون عبر واجهة برمجة مشابهة لـ 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 (متوازي) 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

إذا كان تطبيقك يستخدم إصدارًا من إلكترون أقل من الإصدار 26، فستحتاج إلى تكوين Chromedriver يدويًا.

هذا لأن WDIO يستخدم Chrome للاختبار لتنزيل Chromedriver، والذي يوفر فقط إصدارات Chromedriver 115 أو أحدث.

التوثيق

تكوين الخدمة
تكوين Chromedriver
الوصول إلى واجهات برمجة تطبيقات إلكترون
محاكاة واجهات برمجة تطبيقات إلكترون
إدارة النوافذ
الوضع المستقل
التطوير
المشاكل الشائعة والتصحيح

التطوير

اقرأ وثيقة التطوير إذا كنت مهتمًا بالمساهمة.

أمثلة التكامل

ألق نظرة على مشروع نموذج إلكترون الذي يوضح كيفية دمج WebdriverIO في تطبيق مثال. يمكنك أيضًا إلقاء نظرة على تطبيقات المثال و اختبارات E2E في هذا المستودع.

الدعم

إذا كنت تواجه مشاكل في تشغيل WDIO مع الخدمة، يجب عليك التحقق من المشاكل الشائعة في المقام الأول، ثم فتح مناقشة في منتدى WDIO الرئيسي.

منتدى مناقشة خدمة إلكترون أقل نشاطًا بكثير من منتدى WDIO، ولكن إذا كانت المشكلة التي تواجهها خاصة بإلكترون أو باستخدام الخدمة، فيمكنك فتح مناقشة هنا.

Welcome! How can I help?

WebdriverIO AI Copilot