Autotools automatische Aufruf von lcov nach ‚make-Check‘
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?
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