2017-08-17 3 views
0

Ich versuche Clover mit einem Java-Projekt bei der Arbeit zu integrieren. Clover wurde dem Klassenpfad hinzugefügt, das Plugin wurde dem POM hinzugefügt und die Lizenz wurde eingerichtet. Wenn ich mvn clean clover:setup test clover:aggregate clover:clover starte, startet Clover korrekt. Tests, bei denen CSVs generiert werden, schlagen jedoch fehl, da die CSV-Ausgabe nicht den Erwartungen entspricht. Dies ist, was für einen der Tests erzeugt wird:Running Clover Berichterstattung Reporter fügt neue Spalte zu CSV-Test und bricht bauen

<ID,NAME,[__CLR4_1_2_TEST_NAME_SNIFFER,"DESCRIPTION,Long","DESCRIPTION,Short",country 
001,Fred,[email protected],Mr. Fred Flinstone,Fred Flinstone,US 
002,Bob,[email protected],Mr. Bob the builder,Bob the builder,UK 
003,Tintin,[email protected],Mr. Tin Tin,Tin Tin,FR 
004,,[email protected],,Rob the Bob, 
005,,[email protected]],,Tom the Bob, 
> 

Dies ist, was erwartet wird:

<ID,NAME,["DESCRIPTION,Long","DESCRIPTION,Short",country 
001,Fred,Mr. Fred Flinstone,Fred Flinstone,US 
002,Bob,Mr. Bob the builder,Bob the builder,UK 
003,Tintin,Mr. Tin Tin,Tin Tin,FR 
004,,,Rob the Bob, 
005,],,Tom the Bob, 

Warum sollte Clover eine neue Spalte in der CSV-Ausgabe hinzufügen, ist es möglich, sie zu stoppen ? Ich benutze Maven 3.3, JDK 8 und Clover Version 4.0.2.

Ich habe versucht, nach einer Antwort zu suchen, aber kann nicht scheinen, etwas ähnliches zu diesem Problem zu finden. Wenn ich die fehlerhaften Tests entferne, funktioniert Clover gut.

Antwort

0

Ich bin mir ziemlich sicher, dass es mit dem Code (oder einer Bibliothek) verbunden ist, mit dem Sie diese CSV-Datei erstellen. Clover selbst wird keine CSV-Datei ändern. Ich nehme an, es gibt einen Code, der durch Reflektion auf Java-Objektfelder zugreift. Da Klasse von Clover instrumentiert ist, fügt es einige Instrumentationscode (wie CLV_TEST_SNIFFER

Es zu Ihrem Problem grundsätzlich zwei Lösungen sind:.

  • den Code ändern, die Klassen in das CSV-Dumps statische Klassenmitglieder auszuschließen (Dies wird Clover-Objekte effektiv ausschließen.) Wie auch immer, ich glaube, es ist nicht erwünscht, statische Member in CSV zu deponieren, was, wie ich annahm, eine Datenprojektion Ihres Java-Objekts ist (statische Member gehören nicht zum Objekt, sondern zur Klasse). Obwohl ich Ihren vollen Anwendungsfall nicht kenne, kann ich mich einfach irren.
  • Sie können einfach exclude files, die Probleme (die in CSV serialisiert werden) von Clover-Instrumentierung verursachen, verlieren Sie effektiv Coverage-Daten für diese Klassen.
+0

Ging mit nur diese Dateien aus. Vielen Dank! –

Verwandte Themen