سؤال

أعمل حاليًا على نظام جديد للتحكم في الإصدار كجزء من مشروع السنة النهائية في الجامعة.والفكرة هي جعلها قابلة للتكيف للغاية وقابلة للتوصيل.

نحن نستخدم إطار عمل OSGi (تنفيذ Equinox) لإدارة مكوناتنا الإضافية.مشكلتي هي أنني لا أستطيع العثور على طريقة بسيطة وسهلة الاستخدام لاختبار حزم OSGi.

حاليًا، لا بد لي من إنشاء الحزمة باستخدام Maven ثم تنفيذ أداة اختبار.أنا أبحث عن شيء مثل مشغل اختبار JUnit لـ Eclipse، لأنه سيوفر لي الكثير من الوقت.

هل هناك طريقة سريعة وسهلة لاختبار حزم OSGi؟

يحرر:لا أحتاج إلى أي شيء لاختبار مكونات Eclipse الإضافية أو مكونات واجهة المستخدم الرسومية، فقط حزم OSGi.

تحرير 2:هل هناك بعض الإطار الذي يدعم JUnit4؟

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

المحلول

تتمتع وحدات Spring Dynamic بدعم ممتاز لـ اختبار حزم OSGi.

نصائح أخرى

في الآونة الأخيرة، يجب عليك إلقاء نظرة على Pax Exam:http://team.ops4j.org/wiki/display/paxexam/Pax+Exam

هذا هو الجهد الحالي في OPS4J المتعلق بالاختبار.

يوجد إطار عمل مخصص لاختبار OSGi مفتوح المصدر على OPS4J (ops4j.org) يسمى باكس بدون طيار.

قد ترغب في إلقاء نظرة على Pax Drone ([http://wiki.ops4j.org/confluence/x/KABo]) والتي تمكنك من استخدام جميع إصدارات Felix بالإضافة إلى Equinox وKnopflerfish في اختباراتك.

هتافات ، توني

فيما يلي بعض الأدوات التي لم يتم ذكرها بعد:

  • أنا استخدم تايكو, ، وهي أداة لاستخدام Maven لإنشاء مكونات Eclipse الإضافية.إذا قمت بإنشاء اختبارات داخل المكونات الإضافية الخاصة بها، أو أجزاء المكونات الإضافية، فيمكن لـ Tycho تشغيل كل مجموعة من الاختبارات داخل مثيل OSGi الخاص به، مع جميع التبعيات المطلوبة. مقدمة و مزيد من المعلومات.هذا يعمل بشكل جيد بالنسبة لي.

  • jUnit4OSGI تبدو واضحة.يمكنك إنشاء فئات فرعية من OSGiTestCase، وتحصل على أساليب مثل getServiceReference(), ، إلخ.

  • منشئ البرنامج المساعد, ، وهو نظام إنشاء مقطوع الرأس لحزم OSGi / المكونات الإضافية لـ Eclipse إطار تشغيل الاختبار مُسَمًّى Autotestsuite.يقوم بإجراء الاختبارات في سياق بيئة OSGi، بعد خطوة الإنشاء.ولكن لا يبدو أنه تم صيانته لعدة سنوات.أعتقد أن العديد من مشاريع Eclipse يتم ترحيلها من Pluginbuilder إلى Tycho.

  • خيار آخر هو بدء مثيل حاوية OSGi داخل اختبار وحدتك, والتي تقوم بتشغيلها مباشرة كما هو موضح هنا.

  • وهنا شخص ما هو مكتوب صغير جامع اختبار الحزمة, الذي يبحث عن اختبارات JUnit (3) ويقوم بتشغيلها.

يحتوي Eclipse على نوع تكوين تشغيل لتشغيل اختبارات JUnit في سياق Eclipse (أي.تطبيق OSGi :

http://help.Eclipse.org/stable/index.jsp?topic=/org.Eclipse.pde.doc.user/guide/tools/launchers/junit_launcher.htm

إذا كنت بحاجة إلى اختبار مكونات واجهة المستخدم الرسومية التي وجدتها SWTBot ينجز المهمة.

معاهدة هو إطار عقد (اختبار) أكاديمي جدًا ولكنه يحتوي على بعض الأفكار الرائعة.هناك أوراق منشورة عنه، والأشخاص يعملون حاليًا على تحسينه.

ال بيئة تنفيذ اختبار ProSyst هي أداة اختبار مفيدة لحزم OSGi.كما أنه يدعم اختبارات JUnit كأحد نماذج الاختبار الممكنة.

بالنسبة لاختبارات الوحدة، استخدم إطار عمل EasyMock أو أنشئ تطبيقاتك الخاصة للواجهات المطلوبة للاختبار.

أعتقد أننا واجهنا نفس المشكلة وقمنا بالحل بأنفسنا.هناك أجزاء مختلفة من الحل:

  • Junit4runner الذي يلتقط جميع خدمات OSGi التي لها خاصية خاصة محددة.يقوم بتشغيل هذه الخدمات التي تم التقاطها باستخدام محرك JUnit4.يجب وضع التعليقات التوضيحية لـ JUnit في الواجهات التي تنفذها الخدمات.
  • مكون إضافي مخضرم يبدأ إطار عمل OSGi (يمكن إنشاء إطار عمل مخصص باعتباره تبعية مخضرم) ويقوم بتشغيل اختبارات الوحدة داخل دورة حياة اختبار التكامل المخضرم.
  • حزمة OSGi للنشر.إذا تم إسقاط هذا في حاوية OSGi الخاصة بك، فسيتم فتح نافذة بسيطة دائمًا في الأعلى حيث يمكنك إسقاط مجلدات مشروعك (من Total Commander أو من Eclipse).سيؤدي هذا بعد ذلك إلى إعادة نشر تلك الحزمة.

باستخدام الأدوات، يمكنك إجراء TDD وإجراء الاختبارات الكتابية دائمًا داخل مرحلة التكامل المخضرم أيضًا.يوصى باستخدام Eclipse مع m2e وmaven-bundle-plugin كما في هذه الحالة يتم إعادة إنشاء الهدف/الفئات/META-INF/MANIFEST.MF بمجرد حفظ فصل دراسي في المصدر الخاص بك حتى تتمكن من سحب المشروع وإفلاته إلى نافذة الناشر.لا يلزم أن تحتوي حزم OSGi التي تقوم بتطويرها على أي ميزة خاصة (مثل كونها مكونًا إضافيًا لـ Eclipse أو أي شيء من هذا القبيل).

الحل كله هو مفتوح المصدر.يمكنك العثور على البرنامج التعليمي في http://cookbook.everit.org

خلال العامين الماضيين تايكو - نظام بناء جديد قائم على Maven لـ OSGi - أصبح شائعًا إلى حد ما بين مؤسسة Eclipse Foundation.يتضمن هذا الإطار أيضًا طريقة لاستخدام Maven Surefire لاختبار حزم OSGi في منصات اختبار منفصلة...

ماذا عن bnd-testing-maven-plugin؟

يسمح بتشغيل JUnit داخل حاوية قيد التشغيل مثل Felix أو Equinox.إذا استخدمت BNDTools لـ Eclipse، فهذا مشابه جدًا ولكنه مجرد مخضرم بدون Eclipse وبدون واجهة مستخدم.

https://github.com/bndtools/bnd/tree/master/maven/bnd-testing-maven-plugin

انظر أيضًا إلى النموذج الأصلي لـeffetosgi لـ maven.سيعطيك هذا نقطة انطلاق جيدة لبناء مشروعك أو مجرد إضافة اختبارات.

https://github.com/efficiencyosgi

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