هل هناك طريقة آلية للتأكد من اختبار جميع أجزاء الكود؟

StackOverflow https://stackoverflow.com/questions/2542574

  •  23-09-2019
  •  | 
  •  

سؤال

لقد كتبت اختبارات Junit لفصلي ، وأود أن تخبرني ما إذا كان هناك أي جزء من الكود الخاص بي لم يتم اختباره للوحدة. هل هناك طريقة للقيام بذلك؟

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

المحلول

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

نصائح أخرى

نعم ، أدوات التغطية مثل Cobertura أو إيما.

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

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

تحتاج إلى بعض أدوات تغطية الرمز. يرى هنا (http://java-source.net/open-source/code-coverage) للبعض

إذا نظرت إلى أول واحد أعتقد أنه يفعل ما تحتاجه

Cobertura هي أداة Java مجانية تحسب النسبة المئوية من التعليمات البرمجية التي تم الوصول إليها بواسطة الاختبارات. يمكن استخدامه لتحديد أجزاء من برنامج Java الخاص بك تفتقر إلى تغطية الاختبار. يعتمد على jCoverage. ميزات Cobertura:

  • يمكن تنفيذها من ANT أو من سطر الأوامر.

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

إذا كنت تستخدم Intellij ، فهناك زر بعنوان

"الجري مع التغطية"

Run with Coverage

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