[JUnit] Print Results while running

specialize

Bekanntes Mitglied
Grüß euch,

ich habe eine Frage zu JUnit und zwar will ich die Ergebnisse der Testsuite ausgeben während sie rennt.

Dafür habe ich die Testsuite in einem eigenen Thread gestellt:

Java:
class SecondThread implements Runnable{
	@Override
	public void run(){	
		try{	
			String SuiteToRun = new String(tf_runts.getText());
			Class<?> STR = Class.forName(SuiteToRun);	
			
			JUnitCore JTR = new JUnitCore();
			RunListener JTRL = new RunListener();
			Result JTRes = new Result();
			Exception Exc = new Exception();
			Description tstart = Description.createTestDescription(getClass(), getName());
			
			Failure tfailure = new Failure(tstart,Exc);
						
			JTRL.testRunStarted(tstart);
			JTRL.testFailure(tfailure);
						
			JTR.addListener(JTRL);
			
			JTR.run(STR);	
			int Resrunned = JTRes.getRunCount();
			int Resigno = JTRes.getIgnoreCount();
			int ResFailed = JTRes.getFailureCount();
						
		}	
	catch(Exception e) {
			System.out.println(e);
		}
	}
}

Ausserdem würde ich gerne wissen wie ich Result() dem JUnitCoreRunner zuordne.
 
ich habe eine Frage zu JUnit und zwar will ich die Ergebnisse der Testsuite ausgeben während sie rennt.
Mal vorsichtig gefragt, aber das machen doch die meisten testrunner sowieso, die Testergebnisse anzeigen, zumindest die, die von einem autom. Build ausgeführt werden, letztere erstellen testsuiten auch dynamisch, wieso willst du das nochmals schreiben?
 
Weil ich es ohne API rennen lassen will und JUnit 4+ hat kein SwingUI mehr.
Als Ausgabe habe ich eine einfache JTextArea.

Weitere Ideen:
einen Weiteren Thread vorher starten, der die Ergebnisse des Runlisteners liest?
 
Zuletzt bearbeitet:
1. Konventionen: variablen sind lowerCamelCase zu schreiben (nähere Infos zu Konventionen findest du in meiner Signatur)
2. Wieso verwendest du nicht einfach die JUnit-unterstützungen in IDEs wie Eclipse oder Netbeans?
 
eine IDE würde ich jz nicht als API bezeichen, aber ein Blick in diese wäre sicherlich nicht verkehrt gewesen: JUnitCore (JUnit API). Hier steht, wie und woher du das Result bekommst.

Wieso du hier das Rad neu erfinden willst ist mir nicht klar. In einer IDE hättest du alles schön zusammen.
 
Ok habs mit 2 Threads erledigt.
Der eine schreibt Ergebnisse, bis suite.countTestCases(); (maximale Anzahl) erreicht ist.
Der andere lässt den Runner laufen.
 

Zurück
Oben