Nunit: إرفاق الملفات بنتيجة الاختبار

تم إنشاؤها على ١٥ يوليو ٢٠١٦  ·  34تعليقات  ·  مصدر: nunit/nunit

اهلا ياجماعة،
أنا جديد مع NUnit وأتساءل كيف يمكنني إضافة ملف مرفق للإخراج في مستكشف الاختبار.
في اختبار الوحدة ، توجد طريقة في استدعاء فئة TestContext AddResultFile يمكنها القيام بذلك.
هل هناك أي شخص يمكنه مساعدتي.

شكرا،
جيانغ

Epic done feature normal

التعليق الأكثر فائدة

هذه الميزة أمر لا بد منه.
نجري اختبارات السلوك الآلي الخاصة بنا باستخدام NUnit و Selenium. إذا فشل الاختبار ، فنحن نحب إرفاق لقطة شاشة للمتصفح في نتيجة الاختبار: فهذه مساعدة رائعة لإصلاح الاختبار.
للقيام بذلك ، كان علينا استخدام إطار اختبار Microsoft ، لكنه ليس قويًا مثل NUnit (سمة على مستوى التجميع أو الفصل الدراسي ، فئة الاختبار العامة ...). لذلك نتطلع إلى هذه الميزة في NUnit.

ال 34 كومينتر

الطريقة التي ذكرتها هي جزء من فئة TestContext في إطار اختبار Microsoft. تحتوي NUnit أيضًا على فئة تحمل نفس الاسم ، ولكن ليس لها علاقة بفئة MsTest وليس لديها مثل هذه الطريقة. لا توجد إمكانية في NUnit لإرفاق الملفات بالمخرجات.

شكرا لك تشارلي.
ولكن هل ستضيف طريقة AddResultFile إلى NUnit في المستقبل؟
هذه الطريقة مفيدة حقًا.

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

إذا كان الأمر كذلك ، يجب أن تشرح بمزيد من التفصيل كيف ستعمل. كيف يتم إنشاء الملفات ، وأين يتم تخزينها ، وما إلى ذلك. هل تطلب من NUnit بالفعل إنشاء الملفات أو الاحتفاظ بمرجع لها؟

من couse ، يجب علينا قبول الفكرة ، وتحديد أولوياتها وجدولتها لبعض الإصدارات.

شكرا لك على ردك تشارلي.
سيكون رائعًا إذا تمت إضافة هذه الطريقة إلى NUnit.
سيعمل تمامًا مثل طريقة AddResultFile لفئة TestContext في إطار اختبار Microsoft.
هناك شيء مثل يربط نتيجة الاختبار (نتيجة اختبار ملف html أو لقطة شاشة) بإخراج الاختبار في Test Explorer في VS. يمكنك رؤية لقطة الشاشة على النحو التالي.

screenshot

شكرا على الفكرة. سأعيد فتح هذا.

ومع ذلك ، للمضي قدمًا في الأمر ، سيتعين علينا معرفة كيفية عملها مع NUnit نفسها ، وليس فقط المحول. أنا أضع علامة على هذا على أنه فكرة ، وهو ما نسميه شيئًا لم يتم تعريفه جيدًا بما يكفي لاعتباره ميزة مستقبلية. ربما يتناغم الأشخاص الآخرون مع الاقتراحات.

الأشياء التي نحتاج إلى أخذها في الاعتبار:

  • كيف سيبدو هذا في نتيجة XML
  • هل يمكننا تجميع كل هذا بطريقة ما بحيث يتم الاحتفاظ بالنتيجة والمرفقات معًا؟
  • ما الذي ستفعله وحدة تحكم NUnit بها ، إن وجدت.
  • هل سيعرضه NUnit gui بطريقة ما

هذه الميزة أمر لا بد منه.
نجري اختبارات السلوك الآلي الخاصة بنا باستخدام NUnit و Selenium. إذا فشل الاختبار ، فنحن نحب إرفاق لقطة شاشة للمتصفح في نتيجة الاختبار: فهذه مساعدة رائعة لإصلاح الاختبار.
للقيام بذلك ، كان علينا استخدام إطار اختبار Microsoft ، لكنه ليس قويًا مثل NUnit (سمة على مستوى التجميع أو الفصل الدراسي ، فئة الاختبار العامة ...). لذلك نتطلع إلى هذه الميزة في NUnit.

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

أعتقد أنه إما إجراء تسلسل للملف في xml ، أو الاحتفاظ بدليل مرجعي بجانبه. أحدهما يؤدي إلى xml واسع ، والبطء العام ، والملفات التي تتطلب مترجمًا معينًا ، والآخر يؤدي إلى إمكانية فصل الملفات عن النتائج ، وتكسير المراجع.

أيهما أهون الشرور؟ أشعر أنه مع السابق ، فإن الألم سوف يفوق فوائد الاحتفاظ بكل شيء في حزمة - وسيكون وجود روابط نسبية "آمل أن تكون متاحة" كافياً.

  • ما الذي ستفعله وحدة تحكم NUnit بها ، إن وجدت.
  • هل سيعرضه NUnit gui بطريقة ما

بالنسبة لواجهة المستخدم الرسومية ، يبدو شيء مثل الواجهة أعلاه لطيفًا بدرجة كافية ، فقط روابط تشعبية للملف المرفق. يجب أن تقوم وحدة التحكم ، imo ، بإعلام المستخدم في رسالة الاختبار الفاشل بأن الملف متاح وموقعه.

أتخيل أن هذا سيتطلب من شخص ما تقديم PR ، بمجرد الانتهاء من التصميم -fredgate ، هل أنت مهتم؟ 😄

يجب أن ننظر في كيفية تخزين MSTest للملفات. أتوقع أن يتطلب ملحق Visual Studio ارتباطًا بالملف الموجود على محرك الأقراص.

يبدو أن الإشارة في XML هي السبيل للذهاب. بالنسبة إلى NUnit ، يكون الموقع الأولي المنطقي هو دليل العمل ، حيث ينتقل XML افتراضيًا. هذا يحسم أول نقطتين لي أعلاه.

الرد على نقاطي الأخرى:

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

تبدو وكأنها ميزة جيدة ، أود أن أميل إلى رفعها إلى الأولوية العادية.

rprouse هل تتذكر كيف تعامل

ما الذي يحتاجه عنصر المرفق لتضمينه من حيث السمات والعناصر؟ شيء من هذا القبيل؟

<attachments>
    <attachment  description="Final screen shot">ScreenShot.jpg</attachment>
    ...
</attachments>

أفترض أنه طفل من الاختبار الذي أنتجه ، لذلك لدينا تلك المعلومات. قد يرغب المستخدمون في تضمين لقطات شاشة متعددة ، ومن هنا جاء الوصف. أي شيء آخر؟

ما هو بناء الجملة لربط شيء؟ هل يجب أن نستخدم TestContext؟ هل يجب أن تكون هناك طريقة لربطه بتأكيد بحيث يتم إنشاء المرفق تلقائيًا عند الفشل؟

هل يريد أحد أن يكتب مواصفات لهذا؟

تبدو وكأنها ميزة جيدة ، أود أن أميل إلى رفعها إلى الأولوية العادية.

👍

rprouse هل تتذكر كيف تعامل

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

إذن TestContext.CurrentContext.AddAttachment ؟

مع الحمولة الزائدة لـ (string path) و (string path, string description) ؟

ربما لدينا المواصفات بالفعل!

الرجاء رفع أولوية هذه الميزة. سيكون من المفيد جدًا بالنسبة لملخص نتائج الاختبار الخاصة بنا إرفاق لقطات شاشة لواجهة المستخدم. هل ستكون هذه المرفقات متاحة في نتيجة الإنشاء داخل VSTS (خدمات فريق Visual Studio)؟
شكرا جزيلا تشارلي

أعتقد أنها ميزة جيدة وسوف أنشر المرفقات كأدوات بناء في TeamCity

لقد رفعته إلى الأولوية العادية لأن rprouse قد اقترح ذلك بالفعل. لاحظ مع ذلك أن العناصر ذات الأولوية المنخفضة والعادية يجب أن تنتظر في بعض الأحيان حتى يتم إلهام شخص ما لتنفيذها - إما ملتزم NUnit أو مساهم. إنه قرار شخصي أكثر من قرار جماعي بشأن وقت تنفيذه.

آمل ألا ينسى أحد هذا. ستكون ميزة مفيدة للغاية.

أعتقد أن التعليقات السابقة حلت جميع مشكلات التصميم ، لذلك أقوم بإزالة ملصق التصميم وإضافة مشكلة التنفيذ إلى Backlog.

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

ميزة رائعة! سيكون موضع تقدير كبير. آمل أن يقوم شخص ما بتنفيذ هذا قريبًا 😄

لقد أجريت للتو علاقات عامة لوظيفة إطار العمل المطلوبة لتنفيذ ذلك ، في # 2152. نظرًا لوجود عدد قليل من الأشخاص الذين يتتبعون هذه المشكلة ، أخطط لتحويل هذه المشكلة إلى Epic ودعم عداء المسار ، بمجرد أن نقرر ما يجب القيام به هناك.

ها هي أفكاري:

محول VS
هذه ميزة يمتلكها MSTest ، لذا فإن إطار عمل محول VS يحتوي بالفعل على وظيفة لإظهار الملفات المرفقة. فقط بحاجة لتعقب كيفية توصيل ذلك. 🙂

وحدة التحكم / NUnitLite
أنا في أذهان مختلطة هنا. مع اختبارات الأخطاء / التحذير ، من المنطقي إظهار مسار / وصف ملف المرفق مع النتيجة. ماذا عن المرفقات في الاختبارات التي تم اجتيازها؟ هل يجب أن يكون لدينا مخرجات "معلومات" لإظهارها؟ إذن ، سيكون لدى متسابقي وحدة التحكم ثلاثة أنواع من الإخراج - معلومات / تحذيرات / أخطاء؟

واجهة المستخدم الرسومية / Xamarin
يجب أن يدعم كلاهما هذا في النهاية ، لكنني لا أعتقد أنه يمثل أولوية عالية. سأقوم بإنشاء المشكلات ، ولكن لن أرفقها بهذه الملحمة - يمكن إجراؤها عندما يسمح الوقت / الطلب.

تيم سيتي
NikolayPianikov - قلت إنك مهتم بهذا. ربما يستحق منك تتبع # 2152. 🙂

أفكار حول كل ما سبق؟ @ nunit / فريق العمل؟ سأقوم بإجراء مشكلات فردية بمجرد أن نقرر الخطوات التالية.

يمكن أن تكون مشكلات ChrisMaddock مشكلات في التصميم أيضًا ، لذا يمكنك إجراء واحدة تقول "اكتشف كيفية دعم المرفقات في واجهة المستخدم" - نفس الشيء بالنسبة لأي شخص آخر لا تكون متأكدًا منه.

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

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

بمجرد أن يكون لدينا مرفقات ، أعتقد أنه من السهل جدًا إضافتها إلى النتائج التي نمررها إلى Visual Studio من المحول.

لقد أنشأت https://github.com/nunit/docs/issues/197 و https://github.com/nunit/nunit3-vs-adapter/issues/332 لتغطية الخطوات التالية.

فيما يتعلق بدعم العداء - إذا كانت المكالمات الحالية الوحيدة لهذا هي التكامل مع محول VS ، فأنا أميل فقط لتنفيذه هناك ، في الوقت الحالي. إنها ميزة تتناسب بشكل أفضل مع المتسابقين الرسوميين ، ثم cli - ويمكن دائمًا إضافة دعم آخر للعدائين في المستقبل ، إذا احتاج الناس.

ChrisMaddock أحب أن أرى دعم المرفقات من عداء وحدة التحكم.

kdubau - توقيت مثالي! 😄 في هذه الحالة ، كيف تريد أن تبدو؟ ماذا ستكون حالة الاستخدام الخاصة بك؟

يمكنني تخيل إضافة كتلة نصية "مرفقات" لاختبار الإخفاقات / التحذيرات ووصف سرد ومسار الملف. أحد أسباب مناقشتي لعدم القيام بذلك ، هو أنني لم أكن مقتنعًا بأن العديد من المستخدمين سيرغبون في نسخ / لصق مسار الملف من غلافهم ، للعثور على الملف المعني. هل لا توافق؟

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

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

kdubau بدلاً من وصفها هنا ، أقترح عليك إنشاء مشكلة جديدة في repo nunit-console.

MustafaHosny اللهم امين يارب أنا مهتم فقط بالحصول على المرفقات المشار إليها في ملف XML الناتج - لا حاجة لعرض معلومات المرفقات بالفعل في إخراج وحدة التحكم. حالة الاستخدام الخاصة بي هي أن يكون نظام CI الخاص بي (Visual Studio Team Services) قادرًا على تحميل المرفقات المدرجة في XML كعناصر بناء (لذلك ستحتاج فقط إلى مرجع للملف الموجود على القرص المحلي).

كنت قلقًا من أن إجراء الاختبارات عبر عداء وحدة التحكم لن يحتوي على المرفقات في XML ، ولكن عند قراءة المزيد ، لا أعتقد أن هذا هو السؤال. أرجوا أن تصحح لي إذا كنت مخطئا :)

kdubau - أنت على حق. تم دمج 🙂 # 2152 للتو ، والذي يدعم المرفقات في نتائج xml. إذا سار كل شيء كما هو مخطط له ، فسيكون ذلك جزءًا من NUnit 3.7 ، الذي سيصدر الأسبوع المقبل.

صحيح ... إذا احتجنا إلى "دعم" في وحدة التحكم ، فهذا يعني القيام بشيء أكثر من مجرد حفظ XML الذي يأتي من إطار العمل. في حالة محول nunit3 ، أعتقد أن ChrisMaddock تحدد ما يعنيه ذلك.

مرحبًا يا رفاق ، هل تم هذا العمل أم أن المزيد من العمل معلق؟ لم أتمكن من العثور على أي مشكلات مفتوحة أو علاقات عامة متعلقة بها.

أعتذر إذا فاتني شيء ولكن مرفقات الاختبار الخاصة بي لا تزال لا تظهر في VS Test Explorer كما أتوقع. أنا أستخدم NUnit3TestAdapter 3.8.0 من NuGet وواجهة برمجة التطبيقات TestContext.AddTestAttachement(file) ولكني لا أرى المرفقات في Test Explorer. أتوقع شيئًا كهذا:

image

هل توقعاتي خاطئة؟

kdubau - كلا ، يجب إصدار هذا في NUnit v3.7 و NUnit3TestAdapter 3.8. راجع https://github.com/nunit/nunit3-vs-adapter/issues/332 للتعرف على التنفيذ. تظل هذه المشكلة مفتوحة فقط لأنني ما زلت لم أتمكن من إضافة جملتي التوثيق المطلوبة ... 😱

إذا لم يكن يعمل ، فسأجري اختباراتك أولاً في وحدة تحكم NUnit - ومعرفة ما إذا كان المرفق الخاص بك قد تم تسجيله بشكل صحيح في ملف النتائج xml. إذا لم يكن الأمر كذلك ، فافتح مشكلة في هذا الريبو ، إذا كان الأمر كذلك ، فافتح مشكلة في ريبو المحول ، ويمكننا إجراء مزيد من التحقيق. 🙂

ChrisMaddock حسنًا ، تم إنشاء المشكلة https://github.com/nunit/nunit3-vs-adapter/issues/373

بفضل الدافع من kdubau ، قمت أخيرًا بتوثيق هذه الميزة ، ويمكنني إغلاق هذه الملحمة. 😄

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

dgm90 picture dgm90  ·  5تعليقات

ffMathy picture ffMathy  ·  3تعليقات

jnm2 picture jnm2  ·  4تعليقات

yaakov-h picture yaakov-h  ·  4تعليقات

DustinKingen picture DustinKingen  ·  4تعليقات