Gibt es eine automatisierte Möglichkeit, um sicherzustellen, dass alle Teile des Codes wird als Einheit getestet?

StackOverflow https://stackoverflow.com/questions/2542574

  •  23-09-2019
  •  | 
  •  

Frage

Ich habe für meine Klasse JUnit-Tests geschrieben, und möchte es mir sagen, ob es ein Teil meines Codes, die das Gerät nicht getestet ist. Gibt es eine Möglichkeit, dies zu tun?

War es hilfreich?

Lösung

Wenn Sie Eclipse, können Sie auch versuchen, EclEmma , die zeigt Ihnen, welche Linien der Quelle bedeckt waren durch den Test. Das ist manchmal nützlicher als ein Coverage Tool wie Cobertura laufen, weil Sie einen einzigen Test aus in Eclipse laufen können und dann unmittelbares Feedback zu bekommen, was bedeckt war.

Andere Tipps

Ja, Coverage Tools wie cobertura oder emma .

Sie schaffen Berichte , die jede Zeile im Quellcode zeigen, und ob es sich um ausgeführt oder nicht (und Statistiken als auch aggregiert).

Natürlich können sie Ihnen nur zeigen, wenn der Code ausgeführt wurde. Es gibt keine Möglichkeit, wenn das Gerät zu testen, um zu bestätigen enthaltenen Aussagen zu sagen, dass das Ergebnis korrekt ist.

Sie müssen einige Code-Coverage-Tools. Siehe hier (http://java-source.net/open-source/code-coverage ) für einige

Wenn Sie auf dem ersten Blick denke ich, es tut, was Sie brauchen,

Cobertura ist ein kostenloses Java-Tool, das den Prozentsatz des Code durch Tests zugegriffen berechnet. Es kann verwendet werden, um festzustellen, welche Teile des Java-Programms sind die Testabdeckung fehlt. Es basiert auf jcoverage. Eigenschaften von Cobertura:

  • Kann von Ameise ausgeführt werden oder von der Befehlszeile.

Ihre Überschrift und Ihre eigentliche Frage unterscheiden. Die Werkzeuge in den anderen Antworten erwähnt können Ihnen sagen, welcher Teil des Codes waren nicht getestet (= nicht ausgeführt). Zu machen „stellen Sie sicher, dass alle Teile des Codes getestet Einheit“ eine andere Sache ist. Die Coverage Tools können Sie feststellen, ob alle Linien / Befehle ausgeführt wurden, aber sie garantieren nicht, dass alles funktionell getestet (alle Konstellationen von Daten, alle Ausführungspfade, etc.). Dies erfordert einige Gehirn Macht. Meiner Meinung nach ist die Testabdeckung gibt oft ein falsches Gefühl der Sicherheit. Z.B. Testen viel trivial Getter erhöht Deckung aber ist ziemlich nutzlos.

Wenn Sie IntelliJ verwenden, dann gibt es einen Knopf Titel

"Run With Coverage"

Run mit Coverage

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