هل هناك طريقة التركيز lcov مدونة التغطية التقارير إلى واحد أو اثنين فقط من الدلائل ؟

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

  •  10-07-2019
  •  | 
  •  

سؤال

لقد بدأت مؤخرا باستخدام lcov على تصور قانون بلدي التغطية.انها أداة عظيمة.

شيء واحد أنا لاحظت هو أنه يولد مدونة التغطية تقارير عن جميع الملفات التي أنا باستخدام - بما في ذلك تلك التي أنا غير مهتم.على سبيل المثال, وسوف تعطيني رمز التغطية تقارير دفعة الخلية++ الملفات.

هل هناك طريقة سهلة القوة lcov فقط توليد التغطية تقارير محددة من الملفات ؟

لقد حاولت استخدام ك المعلمة مثل ذلك:

/usr/bin/lcov -q -c -i -b . -d .obj -k src/ -k include/ -o app_base.info

{run unit tests now}

/usr/bin/lcov -q -c -b . -d .obj -k src/ -k include/ -o app_test.info
/usr/bin/lcov -q -a app_base.info -a app_test.info -o app_total.info
/usr/bin/genhtml -q -o lcov_output_directory app_total.info

(بمعنى أن أنا فقط أريد تغطية ملفات "تشمل" و "src" الدلائل.)

ولكن هذا لا يبدو أن العمل.التقرير لا يظهر لي كل الدخيلة الملفات.أي اقتراحات هي موضع تقدير كبير.وذلك بفضل!

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

المحلول

lcov يدعم وسيطة سطر الأوامر <م> - إزالة لتفعل بالضبط ما كنت طالبا.

نصائح أخرى

ولقد استخدمت العلم --no-external مع العلم --directory استبعاد الملفات غير المرغوب فيها.

وتعريف خارجي من الرجل:

<اقتباس فقرة>   

وملفات المصدر الخارجي هي ملفات التي لا تقع في واحدة من الدلائل التي يحددها --directory أو --base-الدليل.

وهكذا أمري يشبه هذا:

$ lcov  --directory src -c -o report.info --no-external
Capturing coverage data from src
Found gcov version: 4.2.1
Scanning src for .gcda files ...
Found 4 data files in src
Processing src/C####.gcda
  ignoring data for external file /usr/include/c++/4.2.1/bits/allocator.h

ممكن النهج هو تقييد الملفات التي يتم تجميعها مع تغطية الأعلام (-fprofile-أقواس-ftest التغطية).إذا كنت لا ترغب في مهندس جعل الخاص بك نظام الملفات أن تكون انتقائية عن الملفات التي يتم بناؤها مع اختبار القياس التالية خدعة قد عمل لك:

  • بناء التطبيق الخاص بك دون القياس.
  • إزالة .o ملفات المصدر التي تريد صك
  • تشغيل الأجهزة وإعادة البناء.فقط حذف ملفات الكائن سيتم بناؤها مع الأجهزة.
  • تشغيل lcov

هذا ينبغي أن يؤدي فقط المناطق المستهدفة التي ينبعث منها gcov القطع الأثرية التي هي عمياء يستهلكها lcov البرامج النصية.

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