سؤال

أنا أبحث عن نظام لموازنة مجموعة كبيرة من الاختبارات في تطبيق Ruby On Rails (باستخدام RSPEC ، الخيار) الذي يعمل باستخدام JRuby. الخيار ليس سيئًا للغاية ، لكن جناح RSPEC الكامل يستغرق حاليًا ما يقرب من 20 دقيقة.

تبدو الأنظمة التي يمكنني العثور عليها (Hydra ، اختبار الموازي) أنها تستخدم Forking ، وهو الحل المثالي لبيئة JRuby.

هل كانت مفيدة؟

المحلول

ليس لدينا إجابة جيدة لهذا النوع من التطبيق الآن. لقد عملت مؤخرًا على شوكة سبورك يتيح لك ذلك الحفاظ على عملية تشغيل وإعادة تشغيل المواصفات أو الميزات فيه ، شريطة أن تستخدم إطار عمل يدعم إعادة تحميل التعليمات البرمجية (مثل القضبان). ألق نظرة على JRUBYHUB تطبيق للحصول على مثال على كيفية استخدام Spork.

أنت قد تكون قادرًا على تفرخ مثيل spork لتطبيقك ثم إرسال طلبات متعددة ملولبة لها لتشغيل مواصفات مختلفة. ولكن بعد ذلك ، فأنت تعتمد على RSPEC Internals لتكون آمنة الخيط ، وللأسف أنا متأكد من أنهم ليسوا كذلك.

ربما يمكنك أخذ الكود الخاص بي كنقطة انطلاق وبناء مجموعة من مثيلات spork ، ثم لديك عميل يمكنه توزيع مجموعة الاختبار عبرها. لن ينقذ الذاكرة وسيظل يستغرق وقتًا طويلاً للبدء ، ولكن إذا بدأت كل شيء مرة واحدة وأعد استخدامها فقط للتشغيل المتكرر ، فقد تحقق بعض المكاسب في الكفاءة.

لا تتردد في التوقف عن طريق user@jruby.codehaus.org أو #jruby على Freenode لمزيد من الأفكار.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top