# JUnit Test Dauer speichern/loggen



## timbeau (20. Jan 2011)

Hi, hat hier jemand Erfahrung mit dem loggen von Tests? 

Das 'ich/Eclipse' z.B. pro JUnittest-Klasse eine Datei anlege vll. pro Tag und mit Datum+Klassennamen bezeichnet und dort die Testergebnisse inkl. der Dauer einzelner Tests gespeichert werden? 

Ich habe diese Seite gefunden und arbeite auch mittels  log4j (aber eben nicht mit Junit Tests loggen)
Log4Unit

aber evtl. gehts ja auch erstmal simpler. Ansonsten wäre ich über eine kurze Erklärung froh wie ich das mittels dieser Datei einstellen kann.


----------



## kama (20. Jan 2011)

Hallo,

das macht üblicherweise mein Build Server...da habe ich eine Übersicht über die Laufzeit und die Ergebnisse über die Zeit....

Gruß
Karl Heinz Marbaise


----------



## timbeau (20. Jan 2011)

Dein "Build Server" heißt? 

Du lässt die Programme da kompilieren und laufen und der loggt eh alles?

Würde mir ja nicht soviel bringen oder?


----------



## kama (20. Jan 2011)

Hi,

der Build Server den ich Nutze ist ein Hudson da wird halt der Build durchlaufen Unit Test + Integrations Tests...und die Ergebnisse aufgezeichnet...

Ich weiß ja nicht was Du erreichen möchtest mit dem Loggen...Hast Du laufzeit Probleme der Unit Tests ? 

Gruß
Karl Heinz Marbaise


----------



## maki (20. Jan 2011)

Logging in tests hat überlichweise keinen Sinn imho


----------



## Wildcard (20. Jan 2011)

Die JUnit XML Reports enthalten doch schon die Dauer pro Test.


----------



## timbeau (21. Jan 2011)

Ich möchte Laufzeiten vergleichen. Ich nutze Methoden, "optimiere" diese Methoden und hätte gerne komfortable vorher<>nachher Ergebnisse. 

Vielleicht denke ich nur falsch und es gibt viel bessere Wege. Ich hab mich mal an dieser Platform die im JDK dabei ist versucht, die ebenfalls alle Threads, den GC, Objekte usw aufzeichnet (finde leider die Bezeichnung nicht) aber die ist sehr komplex. 

Wie testet ihr die Laufzeit? Mir ist klar, dass ich nicht im MS Bereich messen kann, aber ob 10sec oder 5sec hilft mir schon weiter. Sind die Anzeigen der Junit-Tests denn zu gebrauchen oder laufen die deutlich anders als die jeweils aufgerufenen Methoden? 

Wie komme ich an diese Junit XML Reports Wildcard? 

Danke schonmal


----------



## maki (21. Jan 2011)

Hast du denn einen automatischen Build? (Maven2, Ant, gant, etc. pp.)


----------



## kama (21. Jan 2011)

Hallo,

nach längerem Nachdenken bin ich wieder drauf gekommen....schau Dir das mal an:

JUnitPerf

Gruß
Karl Heinz Marbaise


----------



## timbeau (21. Jan 2011)

Moin, ich nutze das maven2-plugin. Ich dachte ant würde von eclipse automatisch genutzt? Kann ich da bei maven irgendetwas einstellen?

@kama: Danke, ich schaus mir mal an


----------



## maki (21. Jan 2011)

Heisst das, das du einen Maven2 Build hast? (pom.xml)

Eclipse nimmt nicht automatisch Ant, würde auch wenig Sinn ergeben...


----------



## timbeau (21. Jan 2011)

Sorry Maki, ich bin verwöhnter eclipse-user und musste mich mit dem build-prozeß noch nicht groß beschäftigen. 

Ich habe eine pom.xml in der die Dependencies vermerkt sind. Wenn ich ganz normal auf run klicke endet meine Erfahrung was dann passiert. Ich habe aber die Auswahl zwischen mehreren maven-configurations (package, build, clean...) und dem Standart-JUnit Test Button, dem Java-Apllication usw.


----------



## maki (21. Jan 2011)

Musst dich nicht entschuldigen, versuche nur herauszufinden was du da eigentlich machst.



> Ich habe eine pom.xml in der die Dependencies vermerkt sind.


Also hast du einen Maven Build.
Dieser hat grundsätzlich rein gar nichts mit Eclipse zu tun, für eclipse gibt es eben das m2eclipse Plugin.



> Wenn ich ganz normal auf run klicke endet meine Erfahrung was dann passiert.


Wie baust du dein Projekt denn?

Im Prinzip reicht es ja schon dass du das test goal aufrufst und selber vergleichst ob es schneller läuft.


----------



## timbeau (21. Jan 2011)

Ja, dieses m2eclipse Plugin habe ich. Aber ich verstehe die Frage nicht wie ich mein Projekt "baue". Ist damit kompilieren gemeint oder welchen Button ich letzendlich drücke? Das wäre der JUnit-Button. 

Ich kann mir natürlich die Laufzeiten der Tests jedesmal notieren aber das würde ich gerne automatisieren.


----------



## Wildcard (21. Jan 2011)

Performance Messungen mache ich mit Japex.


----------



## timbeau (26. Jan 2011)

kama hat gesagt.:


> Hallo,
> 
> nach längerem Nachdenken bin ich wieder drauf gekommen....schau Dir das mal an:
> 
> ...




Kann ich das in Eclipse irgendwie einbinden?

@Wildcard: Gibts dazu mehr Infos? Auf der Seite finde ich nichts das mir weiterhilft und ich verstehe und bei google gibts 1 Treffer der zu passend zu sein scheint.


----------



## Wildcard (26. Jan 2011)

Du brauchst nur einen oder mehrere Driver zu schreiben der die zu testende Codepassage ausführt und entsprechende Testcases die dann für jeden Driver ausgeführt werden. Danach regelst du über die Konfiguration wie viele Warmup Durchläufe und Testläufe es geben soll.
Anschließend erzeugt Japex aus allen Drivern und Testcases übersichtliche Diagramme (die Achsen kannst du dabei selbst wählen, Ausführungszeit, Datendurchsatz,...)
Ist wirklich sehr einfach. Leider scheint die Doku zur Zeit verschwunden zu sein, da Oracle IMO sehr überstürzt alle dev.java.net Projekte auf die neue Kenai Infrastruktur umgezogen hat :autsch:


----------

