java - إخراج وحدة تحكم تستنغ إلى log4j.log




automation testng (4)

أنا بحاجة للحصول على نتيجة الإخراج (فيل أو النجاح) في الانتاج log4j.

Assert.assertTrue(availresponse);

هل هناك أي طريقة لإضافة الإخراج وحدة تحكم تستنغ إلى ملف log4j.log؟


إذا كنت بحاجة إلى ذلك، هل يمكن استخدام if .. else بناء للقيام التسجيل.

if(null != availresponse) {
   //log success message
} else {
   //log failure message
}

طريقة أخرى هي كتابة فئة مخصصة تنفيذ TestListenerAdapter . يمكنك الاطلاع على رمز المثال الكامل هنا .


التفاف تأكيد مع مسجل على سبيل المثال

log.info(Assert.assertNotNull(availresponse));

ومع ذلك هذا هو محدود قليلا من حيث المعلومات. ما أقوم به عادة هو:

    if(availresponse==null)
{
log.fatal("availresponse was null");
}

Assert.assertNotNull(availresponse);

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

بدلا من ذلك يمكنك محاولة الحصول على إخراج وحدة التحكم لتظهر في ملف السجل الخاص بك في هذه الحالة ستحتاج إلى إضافة شيء مثل:

log4j.appender.stdout.Target=System.out

إلى ملف خصائص log4j الخاص بك.


يمكنك العثور test-output مجلد test-output في المشروع باث. index.html سيعرض الإختبار الإختبار للنجاح أو الإخفاق.

  • إذا كان testMethod() هو النجاح، لن تظهر أية نتيجة إخراج في ملف index.html . يمكنك إضافة رسالة نجاح باستخدام Reporter.log()

  • إذا فشل testmethod() ، تلقائيا فإنه سيتم طباعة الإخراج في الملف.

    ملاحظة : java.lang.AssertionError هو خطأ التي ألقيت للإشارة إلى فشل تأكيد.


إذا كان أي شخص يعرف كيف تستنغ إدراج هذا الخطأ إلى التقرير، التعليق أدناه.


وأخيرا وجدت أسهل طريقة لتسجيل Assert error في log4j
في catch block يجب أن يكون Throwable ، إذا كان Exception التي لن تعمل.

try {
    Assert.assertTrue(hotel.getAmenitiesList().size() < 0, "Hotel Amenities Available!");

} catch (Throwable e) {
    e.printStackTrace();
    logger.error("FAILED: testRoomAmenities ", e);
    Assert.fail();

عند تنفيذ هذا لن استدعاء كما FAIL . وسوف تظهر أن السيناريو هو PASSED . لذلك يجب استخدام Assert.fail() لجعل هذا FAILED





testng