كيف يمكنني تشغيل اختبارات NUnit(Selenium Grid) بالتوازي؟
-
03-07-2019 - |
سؤال
يستخدم مشروعي الحالي NUnit لاختبارات الوحدة ولقيادة اختبارات UAT المكتوبة باستخدام السيلينيوم.يقوم المطورون عادةً بإجراء الاختبارات باستخدام مشغل اختبار ReSharper في VS.Net 2003 ويقوم صندوق البناء الخاص بنا بإطلاقها عبر NAnt.
نود إجراء اختبارات UAT بالتوازي حتى نتمكن من الاستفادة من شبكة السيلينيوم/المنسقين المقيمين حتى يتمكنوا من العمل بشكل أسرع بكثير.
هل لدى أي شخص أي أفكار حول كيفية تحقيق ذلك؟و/أو أفضل الممارسات لاختبار اختبارات السيلينيوم في بيئات متصفحات متعددة دون كتابة اختبارات مكررة تلقائيًا؟
شكرًا لك.
المحلول
لم يكن هناك الكثير من العمل حول هذا الموضوع.لم أجد أي شيء ذي صلة حقا.
ومع ذلك، تم أخذ وجهة نظرك بشكل جيد.تحتوي معظم الأجهزة في الوقت الحاضر على عدد أكبر من النوى وأقل قوة مقارنةً بوحدة المعالجة المركزية القوية ذات النواة الواحدة.
لذلك وجدت شيئًا ما على مدونة Microsoft.تسمى هذه التقنية PUnit وهي مصممة خصيصًا لاختبار البيئة متعددة الخيوط.
إنه أقرب ما يمكن إلى ما طلبته حتى أتمكن من العثور عليه :)
يمكنك زيارة منشور المدونة المناسب هناك: http://blogs.microsoft.co.il/blogs/eyal/archive/2008/07/09/punit-parallel-unit-testing-in-making.aspx
تحديث:الرابط لم يعد صالحا بعد الآن.تمت إزالة المشروع الموجود على CodePlex.
التحديث2:هذا موجود في خريطة الطريق لـ NUnit 2.5. مرجع
نصائح أخرى
وأنا ناضلت مع كل هذه المشاكل نفسي. في النهاية أنا وضعت مخصص Nunit اختبار عداء قادر على تشغيل اختبارات متعددة في موازية. هذا جنبا إلى جنب مع تمديد Taumuon.Rakija لnunit يسمح الاختبارات المراد إنشاؤها dynmaically اعتمادا على المتصفح الذي تريد اختبار لتشغيل على.
وأنا الآن في وضع يمكنها من حيث يمكنني إطلاق جناح اختباري ضد العديد من أنواع متصفح على العديد من أنظمة التشغيل كما يحلو لي في موازية.
ومما يؤسف له أنه لا يبدو أن هناك حلا جيدا لهذه المشاكل بالفعل لذلك ربما عليك حلها بنفسك لبيئة التشغيل الخاصة بك.
وNUnit الإصدار 3 ستدعم تشغيل الاختبارات في موازاة ذلك، هذا يعمل جيدا مع الشبكة السيلينيوم:
وإضافة السمة إلى فئة: سوف [Parallelizable(ParallelScope.Self)]
تشغيل الاختبارات الخاص بالتوازي مع الطبقات اختبارات أخرى
و• ParallelScope.None يشير إلى أن الاختبار لا يمكن أن تعمل بشكل متواز مع اختبارات أخرى.
و• ParallelScope.Self يشير إلى أن الاختبار في حد ذاته قد يكون بالتوازي مع اختبارات أخرى.
و• ParallelScope.Children يشير إلى أن أحفاد الاختبار قد يتم بالتوازي مع الاحترام لبعضهم البعض.
و• ParallelScope.Fixtures يشير إلى أن المباريات يمكن تشغيل في نفس الوقت مع بعضها البعض.
اقتباس فقرة>وايجور Brejc لديه وظيفة بلوق حول تشغيل الاختبارات بالتوازي باستخدام MbUnit.
ولكن كان لا يقول "عندما ندمج السيلينيوم في اختبار القبول"، بحيث يبدو وكأنه كان مجرد تجربة، وأنا لا يمكن العثور على أي وظائف أخرى لذلك أنا لا أعرف إذا كان قد بنجاح تشغيل الاختبارات السيلينيوم في نفس الوقت.
http://igorbrejc.net/development/continuous للاندماج / gallio و-تشغيل-اختبارات-بالتوازي
ويمكنك استخدام مكتبة موازية العمل والطبقة DynamicObject لتحقيق الموازاة من نفس الاختبار على عدة متصفحات. انظر مقالتي تشغيل السيلينيوم بالتوازي مع أي أداة اختبار وحدة. NET للحصول على مزيد من التفاصيل.