سؤال

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

هنا كيكر:هذا وقد لتشغيل تماما unnatended (في نهاية المطاف داخل المتواصل تكامل بناء) ، يجب أن يكون عبر منصة (حسنا, WIN32 و *nix على الأقل).

يمكن لأي شخص أن يقترح أداة ، أو مجموعة من الأدوات التي يمكن أن تساعد لي أن أفعل هذا ؟ لا أستطيع تغيير بعيدا عن CppUnit (ولا أريد أن - ركلات الحمار), لكن على خلاف ذلك أنا حريصة على سماع أي توصيات قد تكون لديكم.

الهتافات ،

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

المحلول

الأداة التي يجب استخدامها ؟

هذا المقالة آخر المطورين الإحباط البحث عن C++ رمز أدوات تغطية.صاحب البلاغ إلى الحل النهائي بولس التغطية.

بولس التغطية الميزات:

كما لتركيب إلى التكامل المستمر ، فإنه يعتمد على CI الحل استخدام, ولكن يمكنك على الأرجح ربط الأجهزة / تغطية قياس الخطوات في جعل الملف يمكنك استخدام الاختبار الآلي.


اختبار لينكس مقابل ويندوز ؟

طالما أن جميع الاختبارات الخاصة بك تعمل بشكل صحيح في كل البيئات ، يجب أن يكون على ما يرام قياس التغطية في واحدة أو أخرى.(على الرغم من أن بولس يظهر لدعم كل المنابر).ولكن لماذا لا تفعل التكامل المستمر يبني في كل البيئات??إذا كنت تسليمها إلى العملاء في كل من البيئات ثم تحتاج أن يكون الاختبار في كليهما.

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

نصائح أخرى

إذا كان يمكنك استخدام غنو دول مجلس التعاون الخليجي كما مترجم, ثم gcov أداة يعمل بشكل جيد.فإنه من السهل جدا أن أتمتة العملية بأكملها.

إذا كنت تستخدم دول مجلس التعاون الخليجي toolchain, gcov سوف تحصل على المصدر ، وظيفية فرع التغطية الإحصاءات.gcov يعمل بشكل جيد بالنسبة mingw Cygwin.هذا سوف يسمح لك للحصول على تغطية إحصاءات فضلا عن انبعاث المجهزة البرمجية المصدر التي تسمح لك تصور لم تنفذ التعليمات البرمجية.

ومع ذلك, إذا كنت تريد حقا أن ضرب عليه للخروج من الحديقة مع حد التقارير باستخدام gcov بالتزامن مع lcov هو الطريق للذهاب.lcov سوف تعطيك شريط التقارير راقب إلى الملفات والدلائل الوظيفية تغطية إحصاءات اللون ترميز الملف المصدر التصفح تظهر التغطية (الأخضر يعني أعدم الأحمر يعني لا...).

lcov من السهل على لينكس ، ولكن قد تتطلب بعض بيرل القرصنة على Cygwin.أنا شخصيا كان لدي بعض المشاكل في تنفيذ البرامج النصية (lcov يتم تنفيذها في بيرل) في نظام التشغيل Windows.لقد حصلت اخترق تصل النسخة إلى العمل ، ولكن يكون محذر.

وثمة نهج آخر هو القيام gcov تنبعث منها على ويندوز ، والقيام lcov مرحلة ما بعد المعالجة على لينكس ، حيث ستعمل بالتأكيد في الخروج من مربع.

تحقق من SD C++ اختبار التغطية أداة.ويمكن الحصول عليها من دول مجلس التعاون الخليجي ، MSVC6.

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

تحرير:أغسطس 2015:الآن يدعم GCC5 ومختلف MS اللهجات من خلال Visual Studio 2015.استخدام هذه الأدوات تحت لينكس ، تحتاج النبيذ ، ولكن هناك توفر أدوات لينكس الأصلي sh البرمجة و لينكس/جافا القائمة على واجهة المستخدم ، حتى يشعر أداة مثل الأم أداة لينكس هناك.

أعتقد أنني يجب أن يكون محدد مترجم - نحن نستخدم دول مجلس التعاون الخليجي لينكس ، MSVC 6 (نعم أنا أعرف انه قديم لكنه يعمل (في الغالب) بالنسبة لنا) for WIn32.

لتلك الأسباب ، gcov لن تعمل لدينا Win32 يبني و بولس لا تعمل على لينكس لدينا يبني.

ثم مرة أخرى ربما أنا فقط بحاجة إلى التغطية في نظام التشغيل...

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