Frage

Ich habe erfolgreich eingerichtet ein Autotool Projekt, bei dem die Tests compiliert mit Instrumentierung, damit ich eine Testabdeckung Bericht erhalten.

Ich kann den Bericht erhalten, indem lcov im Quellverzeichnis nach einem erfolgreichen ‚make-Check‘ ausgeführt wird.

ich nun vor dem Problem, dass ich diesen Schritt automatisieren mag. Ich möchte dies zu ‚make-Check‘ hinzuzufügen, oder es eine separate Ziel ‚make check-Berichterstattung‘ zu machen. Im Idealfall würde Ich mag das Ergebnis analysieren und versagen, wenn die Abdeckung unter einem bestimmten Prozentsatz fällt. Problem ist, dass ich nicht herausfinden kann, wie ein benutzerdefiniertes Ziel überhaupt hinzuzufügen.

Die nächstgelegene ich bekam, war zu finden, dieses Beispiel Autotools Config, aber ich kann nicht sehen, wo in diesem Projekt das Ziel,‚make lcov‘hinzugefügt wird. Ich kann nur einigen configure-Flags in m4 / auxdevel.m4 sehen.

Irgendwelche Tipps?

War es hilfreich?

Lösung

Sie können offenbar nur fügen Sie zusätzliche Schritte zu Zielen in Ihrem Makefile.am, ist das, was ich am Ende mit (inspiriert von #http: //www.enlightenment.org/svn/e/trunk/ewl/Makefile.am ):

#http://www.enlightenment.org/svn/e/trunk/ewl/Makefile.am
if ENABLE_COV
cov-reset:
    @rm -fr coverage
    @find . -name "*.gcda" -exec rm {} \;
    @lcov --directory . --zerocounters

cov-report:
    @mkdir -p coverage
    @lcov --compat-libtool --directory . --capture --output-file coverage/app.info  
    @genhtml -o coverage/ coverage/app.info 

cov:
    @make cov-report

clean-local:
    @make cov-reset 

check:
    @make cov

endif    

Die '@make cov' unter Kontrolle wird das 'cov' Ziel der default 'make-Check' Ziel.

hinzufügen
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top