Code Coverage in C++

Um die Qualität von UnitTests beurteilen zu können, werden häufig Abdeckungs- oder Überdeckungstests (von engl. coverage) durchgeführt. Selbst bei streng testgetriebener Entwicklung kann eine Coverage Analyse hilfreich sein, da gezeigt werden kann, welches Quelltext von welchem Test wie abgedeckt wird. (Evtl. werden gleich mehrere Methoden durch einen Test abgedeckt…)

Bauen für Coverage Analyse

Der gcc benötigt die Option –coverage. Diese sorgt beim Bauen und Linken für die richtigen Einstellugnen. Siehe auch: GCC Manual, Debugging Options

Coverage Daten sammeln / HTML-Report

Zunächst ist ein coverage build erforderlich. Oft muss dieser auch statisch sein. Wieso weiß ich nicht.

# reset counters
lcov --zerocounters --directory .
# run tests
# testrun..
# collect data
lcov --capture --directory . --output-file trace_noargs.info --test-name test_noargs
# generate report
genhtml trace_noargs.info --output-directory ~/tmp/output --title "Basic example" --show-details

Links

public/cpp/code_coverage.txt · Zuletzt geändert: 2009/04/24 20:39 (Externe Bearbeitung)
chimeric.de = chi`s home Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0