2015-08-17 2 views
5

Ich laufe Integrationstest auf einer riesigen Code-Basis. Im Abdeckungsbericht möchte ich wissen, welcher Test eine bestimmte Zeile im Code abgedeckt hat. Gibt es das überhaupt mit jacoco?Finden Sie, welcher Test abdeckt, welche Zeile jacoco

+1

Sonar hat pro Testabdeckung. Sehen Sie hier für einen Hinweis. https://deors.wordpress.com/2014/07/04/individual-test-coverage-sonarqube-jacoco/ –

+0

Ziemlich informative Verbindung, aber gibt es eine Möglichkeit, es ohne Sonar zu tun? –

+1

Mit Sonar können Sie von jedem einzelnen Test zu der Menge der vom Test ausgeübten Quelldateien/Zeilen navigieren. Es liefert es nicht in der entgegengesetzten Richtung, dh von einer Zeile im getesteten Code zu den Tests, die die Zeile abdecken. JaCoCo selbst hat keine Unterstützung für beides. Ein Coverage-Tool, das die zweite Funktion bereitstellt, ist JMockit Coverage. –

Antwort

0

JaCoCo sammelt diese Informationen nicht und kann sie daher nicht melden.

Vorstellbar, Sie könnten jeden Test unabhängig mit JaCoCo laufen lassen und jedes Mal einen Abdeckungsbericht erstellen, so dass jeder Test die genauen Codezeilen anzeigt, die er getestet hat. (Dann müssen Sie dies mit einem benutzerdefinierten aggregierten Bericht umschließen, in dem Sie von einem Test zum nächsten navigieren können).

Ich bekomme, dass dies mit einer großen Codebasis und eine große Anzahl von Tests nicht praktisch sein könnte. Eine weitere Einschränkung ist, dass Sie nicht zu "was sind alle Tests, die diese Codezeile ausübte?".

Wie @ Rogério bemerkte, könnten andere Tools diese Funktionalität bereitstellen.

+3

Jacoco tut es, aber nicht für Integrationstests. Nur für Komponententests. http://i.imgur.com/RUq7Xhn.png – mattalxndr