هل هناك طريقة التركيز lcov مدونة التغطية التقارير إلى واحد أو اثنين فقط من الدلائل ؟
-
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 البرامج النصية.