Junit 4 - TestSuite

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Wir müssen für eine Vorlesung nun JUnit 4 benutzen. Ich kannte Junit 3.8.1 ein wenig und von daher auch die TestSuites. Allerdings seh ich in bisherigen suite Methoden nur so was:

Code:
public static junit.framework.Test suite() {
return new JUnit4TestAdapter(SimpleUnitTest.class);
}

Das ist doch dafür da, dass die Testfälle aus meiner Klasse SimpleUnitTest, welche mit JUnit 4 entwickelt wurden, auch in alten JUnit Runnern verwendet werden können oder?

Soweit so gut. Bisher schreib ich vor die Methoden, die ich testen möchte ja @Test.
Das klappt soweit auch gut.

Aber gibt es in JUnit 4 nicht so was wie suite?

Das ich z.B. vor alle Methoden @Test schreib und dann aber nur gezielt 2-3 Stück ausführen möchte. Dann will ich nicht überall aus @Test ein @Ignore machen, oder es ganz auskommentieren, sondern gezielt sagen können: Ok, führe TestMethod1...TestMethod3 aus, vor denen steht jeweils auch ein @Test.
Aber TestMethod4, vor der auch @Test steht, will ich mal nicht ausführen.

Hoffe ihr versteht mein Problem.
 

y0dA

Top Contributor
Hoffe das hilft:

Code:
package org.test.junit.suite;

import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
import org.uba.gegenstandsbereich.emoris.domain.model.TestModelAusgewaehlt;
import org.uba.gegenstandsbereich.emoris.domain.model.TestModelAuswahl;
import org.uba.gegenstandsbereich.emoris.domain.model.TestModelGis;
import org.uba.gegenstandsbereich.emoris.domain.model.TestModelGrant;
import org.uba.gegenstandsbereich.emoris.domain.model.TestModelPivot;
import org.uba.gegenstandsbereich.emoris.domain.model.TestModelSchritte;
import org.uba.gegenstandsbereich.emoris.domain.model.TestModelSiSeForm;
import org.uba.gegenstandsbereich.emoris.domain.model.TestModelSiSeModule;
import org.uba.gegenstandsbereich.emoris.domain.model.TestModelSiSeReport;
import org.uba.gegenstandsbereich.emoris.domain.model.TestModelSiSeValue;
import org.uba.gegenstandsbereich.emoris.domain.model.TestModelSiSeValue2;
import org.uba.gegenstandsbereich.emoris.domain.model.TestModelSimpleSelection;
import org.uba.gegenstandsbereich.emoris.domain.model.TestModelZeitreihe;
import org.uba.gegenstandsbereich.emoris.domain.model.TestModelZeitspanne;

/**
 * @author MPF
 * suite for model tests
 */
@RunWith(Suite.class)
@SuiteClasses({
				TestModelAusgewaehlt.class,
				TestModelSchritte.class,
				TestModelSimpleSelection.class,
				TestModelSiSeModule.class,
				TestModelSiSeForm.class,
				TestModelGrant.class,
				TestModelSiSeValue.class,
				TestModelSiSeValue2.class,
				TestModelSiSeReport.class,
				TestModelGis.class,
				TestModelZeitspanne.class,
				TestModelZeitreihe.class,
				TestModelAuswahl.class,
				TestModelPivot.class				
				})
public class SuiteTestModelAll {

}
 
G

Gast

Gast
hm..danke für die antwort, aber wie verwende ich das bei mir? zudem ist es so, so seh ich das zumindest, das du jetzt ja nur aus verschiedenen klassen alle testmethoden holst und nicht aus einer spezifische.

trotzdem danke.
 

y0dA

Top Contributor
Vllt wird nun verständlicher:


Also folgendes ist eine Testklasse ein welcher mehrer Tests durchgeführt werden.
Code:
package org.uba.gegenstandsbereich.emoris.domain.model;

import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;

import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import org.test.junit.helper.JUnitTestSelection;
import org.uba.gegenstandsbereich.emoris.domain.model.ModelGis.RowSetGeomType;
import org.uba.gegenstandsbereich.emoris.domain.model.ModelGis.RowSetPossibleType;

/**
 * @author MPF
 */
public class TestModelGis {

	/** junit test selection */
	private static JUnitTestSelection testSelection;

	//------------------------------------------------------------------------------------------------------------------
	// TEST METHODS
	//------------------------------------------------------------------------------------------------------------------

	/**
	 * beforeClass method insert a dummy report for junit tests
	 * s
	 * @throws Exception
	 *             e
	 */
	@BeforeClass
	public static void beforeAll() throws Exception {
		TestModelGis.setTestSelection(new JUnitTestSelection(false));
		TestModelGis.getTestSelection().createModelSimpleSelection();
		TestModelGis.getTestSelection().createModelGis();
	}

	/**
	 * afterClass this method delete all test-data from the database.
	 * 
	 * @throws Exception
	 *             e
	 */
	@AfterClass
	public static void afterAll() throws Exception {
		TestModelGis.getTestSelection().deleteAuswahlSSMatrix();
		TestModelGis.getTestSelection().deleteAuswahlSSTemp();
		TestModelGis.getTestSelection().deleteTestSelection();
	}

	/**
	 * test test method getRrowSetGeomTypeString
	 */
	@Test
	public void testGetRowSetGeomTypeString() {
		String result = ModelGis.getRowSetGeomTypeString(RowSetGeomType.POINT);

		assertTrue("wrong return value from method getRowSetGeomTypeString",
				result.equals("POINT"));
	}

	/**
	 * test test method getRowSetPossibleTypeInt
	 */
	@Test
	public void testGetRowSetPossibleTypeInt() {
		int result = ModelGis
				.getRowSetPossibleTypeInt(RowSetPossibleType.SELECTED);

		assertTrue("wrong return value from mehtod getRowSetPossibleTypeInt",
				result == 2);
	}

	/**
	 * test simulate refresh data
	 */
	@Test
	public void testRefreshData() {
		boolean failure = false;
		String reason = "";
		try {
			this.getModelGis().refreshData();
		} catch (Exception e) {
			failure = true;
			reason = e.toString();
		}

		assertFalse("method: testRefreshData thrown exception: " + reason,
				failure);
	}

	//------------------------------------------------------------------------------------------------------------------
	// GETTER / SETTER
	//------------------------------------------------------------------------------------------------------------------

	/**
	 * getter method
	 * 
	 * @return modelGis
	 */
	private ModelGis getModelGis() {
		return TestModelGis.getTestSelection().getModelGis();
	}

	/**
	 * getter method
	 * 
	 * @return testSelection
	 */
	private static JUnitTestSelection getTestSelection() {
		return TestModelGis.testSelection;
	}

	/**
	 * setter method
	 * 
	 * @param testSelection
	 *            junit test selection
	 */
	private static void setTestSelection(final JUnitTestSelection testSelection) {
		TestModelGis.testSelection = testSelection;
	}
}

Und diese gebe ich nun in der entsprechenden Suite bekannt:

Code:
package org.test.junit.suite;

import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
import org.uba.gegenstandsbereich.emoris.domain.model.TestModelAusgewaehlt;
import org.uba.gegenstandsbereich.emoris.domain.model.TestModelAuswahl;
import org.uba.gegenstandsbereich.emoris.domain.model.TestModelGis;
import org.uba.gegenstandsbereich.emoris.domain.model.TestModelGrant;
import org.uba.gegenstandsbereich.emoris.domain.model.TestModelPivot;
import org.uba.gegenstandsbereich.emoris.domain.model.TestModelSchritte;
import org.uba.gegenstandsbereich.emoris.domain.model.TestModelSiSeForm;
import org.uba.gegenstandsbereich.emoris.domain.model.TestModelSiSeModule;
import org.uba.gegenstandsbereich.emoris.domain.model.TestModelSiSeReport;
import org.uba.gegenstandsbereich.emoris.domain.model.TestModelSiSeValue;
import org.uba.gegenstandsbereich.emoris.domain.model.TestModelSiSeValue2;
import org.uba.gegenstandsbereich.emoris.domain.model.TestModelSimpleSelection;
import org.uba.gegenstandsbereich.emoris.domain.model.TestModelZeitreihe;
import org.uba.gegenstandsbereich.emoris.domain.model.TestModelZeitspanne;

/**
 * @author MPF
 * suite for model tests
 */
@RunWith(Suite.class)
@SuiteClasses({
				TestModelAusgewaehlt.class,
				TestModelSchritte.class,
				TestModelSimpleSelection.class,
				TestModelSiSeModule.class,
				TestModelSiSeForm.class,
				TestModelGrant.class,
				TestModelSiSeValue.class,
				TestModelSiSeValue2.class,
				TestModelSiSeReport.class,
				TestModelGis.class,
				TestModelZeitspanne.class,
				TestModelZeitreihe.class,
				TestModelAuswahl.class,
				TestModelPivot.class				
				})
public class SuiteTestModelAll {

}

Und das ganze führe ich eben mit MAVEN aus oder in der IDE - benutzt du Eclipse? Wenn ja einfach in der Suite : Run as Junit Test

Argh ich seh grade dass du nur bestimmte TEstcases ausführen möchtest - dachte du wüsstest nicht wie man eine Suite mit JUnit 4 macht.
 
G

Gast

Gast
ok, das hat geholfen. ja ich benutze eclipse.

damit wäre ein teil der probleme gelöst. was ist mit dem andern was ich angesprochen habe? also das man individuell methoden auswählt, die auszuführen sind....das man nicht immer @Test wegmachen muss...

aber danke schonmal.
 

y0dA

Top Contributor
Nun ja, wenn ich nicht alle testcases ausführen möchte dann bekommt der jeweilige testcase einfach ein @ignore verpasst.

Ich verstehe den Sinn dahinter nicht so wirklich, denn man macht eben bspw für eine Klasse eine TestKlasse und in dieser Klasse testet man dann die einzelnen Methoden der Klasse. Demnach sehe ich keinen Sinn dahinter einzelne Tests einer Testklasse aufzurufen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M JUnit TestSuite erstellen Allgemeine Java-Themen 2
Zrebna Wieso sind eigentlich JUnit-Tests in src/test/java platziert - nur Konvention? Allgemeine Java-Themen 7
harrytut Java Input/Output Tests Junit Allgemeine Java-Themen 3
B Junit Test Allgemeine Java-Themen 8
J Junit surefire: enrich test information Allgemeine Java-Themen 0
J Junit start surefire for manual testing Allgemeine Java-Themen 1
P No JUnit tests found Allgemeine Java-Themen 5
F Junit Test + Cucumber - JSON auslesen und in einem weiteren Schritt nutzen Allgemeine Java-Themen 0
J JUnit - Auslassen von Code Allgemeine Java-Themen 25
S Zugriff auf jUnit Test Suite Runner-Instanzen innerhalb von Test Classes Allgemeine Java-Themen 7
S Eclipse Probleme beim Implementieren / Ausführen von jUnit 5-Test Suites Allgemeine Java-Themen 14
S Parametrisierte jUnit 5-Tests mit eigenen Datentypen/Klassen-Objekten als Test-Parameter Allgemeine Java-Themen 0
K Input/Output JUnit: Log Inhalte, falsche Assertion Allgemeine Java-Themen 2
H OOP Testen einer Exception mit JUnit Allgemeine Java-Themen 8
AssELAss Junit-Tests für SQL-Veribindung sowie SQL-Queries? Allgemeine Java-Themen 3
O Maven - JUnit - H2 Allgemeine Java-Themen 1
M Selenium JUnit Tests (Auswahl von Testmethoden auswerten) Allgemeine Java-Themen 5
C JUNIT - ANT - build.xml Allgemeine Java-Themen 0
Airwolf89 JUnit: Vorschläge/ Best Practice Allgemeine Java-Themen 7
M JUnit Serverseitig? Wie geht sowas? Allgemeine Java-Themen 2
E JUnit wie Testergebnisse pro Test ("Test Report") erhalten? Allgemeine Java-Themen 1
B JUnit Zufalls Operation testen Allgemeine Java-Themen 1
P JUnit Allgemeine Java-Themen 2
B jUnit 4: Wie protokolliert man Testergebnisse? Allgemeine Java-Themen 1
H JUnit Fehler beim Compilieren - erledigt Allgemeine Java-Themen 0
M JUnit Test Suites Allgemeine Java-Themen 2
L JUnit - automatisiertes vs. manuelles Testen? Allgemeine Java-Themen 6
B Hilfe bei JUnit Test Allgemeine Java-Themen 1
M JUnit & Multithreading - sehr seltener Fehler Allgemeine Java-Themen 3
A JUnit/Hashcode Problem Allgemeine Java-Themen 5
X Problem mit URLClassLoader und JUnit Allgemeine Java-Themen 3
N JUnit Allgemeine Java-Themen 13
M Junit Tests durchführen Allgemeine Java-Themen 18
M JVM Probleme JUnit Allgemeine Java-Themen 2
G NUnit Features in JUnit Allgemeine Java-Themen 2
darekkay (JUnit) Testdaten generieren - Framework? Allgemeine Java-Themen 2
A JUnit problem Allgemeine Java-Themen 9
T Organisation von Junit Testfällen? Allgemeine Java-Themen 2
M JUnit Tests vs. DBUnit Tests Allgemeine Java-Themen 3
P Klassen Junit test funktioniert nicht... Allgemeine Java-Themen 11
S Die Zeile die JUnit gerade ausführt lesen Allgemeine Java-Themen 15
aze JUnit: Testen ob bestimmte Exception nicht auftritt Allgemeine Java-Themen 18
U Fehler: Hauptklasse org.junit.runner.JUnitCore konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 2
G JUnit Test Methoden in anderen Thread verlagern Allgemeine Java-Themen 4
J JUnit-Tests Zeichensatzproblem ? Allgemeine Java-Themen 2
J JUnit, TestCase vs "einfacher" Test Allgemeine Java-Themen 3
S [JUnit] Name von TestCase bekommen Allgemeine Java-Themen 4
1 JUnit Test Suit Allgemeine Java-Themen 2
T Junit-Tests in Java Klasse ausführen Allgemeine Java-Themen 26
J JUnit - werfen von Exceptions testen Allgemeine Java-Themen 17
B JUnit und mehrere Instanzen der selben Applikation Allgemeine Java-Themen 4
G Testcases mit Junit auf private-Methode Allgemeine Java-Themen 7
G Input/Output System.in "umbiegen" für junit-Test Allgemeine Java-Themen 4
C JUnit und das Zulassen von RuntimeExceptions Allgemeine Java-Themen 5
ruutaiokwu junit mit annotations geht nicht? Allgemeine Java-Themen 5
T JUnit-Log auslesen Allgemeine Java-Themen 13
C JUnit Tests Allgemeine Java-Themen 4
fastjack JUnit Supplementary Classes Allgemeine Java-Themen 4
O Junit Reports / Logs als XML ohne Maven/Ant Allgemeine Java-Themen 7
M Junit und Mocks Allgemeine Java-Themen 5
fastjack jUnit und Test von equals, hashCode, toString Allgemeine Java-Themen 11
D junit - frage zu fixtures/test suites Allgemeine Java-Themen 11
A Seltsames Verhalten von JUnit-Tests im Zusammenspiel mit Ant Allgemeine Java-Themen 6
S JUnit: Erzeugen einer IOException Allgemeine Java-Themen 9
G JUnit Tests Allgemeine Java-Themen 7
G JUnit Test Allgemeine Java-Themen 5
S JUnit - was mocken, was nicht? Allgemeine Java-Themen 3
S JUnit TesSuite und @Repeat Allgemeine Java-Themen 2
S JUnit Tests für GUI / Oberflächen Allgemeine Java-Themen 2
M Junit und Mocks bei JDBC Daos Allgemeine Java-Themen 8
M JUnit Problem mit AssertionFailedError Allgemeine Java-Themen 2
B Testfälle mit JUnit Allgemeine Java-Themen 4
S JUnit Allgemeine Java-Themen 15
N ClassNotFound Exception bei JUnit Test? Allgemeine Java-Themen 2
G ANT Tutorial . Schritte bzgl. Junit Bibliothek Allgemeine Java-Themen 4
A JUnit Reports zu groß für XSLT Allgemeine Java-Themen 4
M JUnit und dynamische Tests Allgemeine Java-Themen 11
P JUnit unter Eclipse: Problem mit Exception Allgemeine Java-Themen 8
GilbertGrape Warum schlägt JUnit-Test fehl? Allgemeine Java-Themen 19
K Bekomme JUnit TEst nicht zum laufen :( Allgemeine Java-Themen 9
K Junit: Frage zum Ablauf Allgemeine Java-Themen 3
K JUnit: Tests über ant aufrufen Allgemeine Java-Themen 2
S JUnit und EasyMock Allgemeine Java-Themen 7
B Wie alt ist JUnit? Allgemeine Java-Themen 2
A Junit Exceptions testen Allgemeine Java-Themen 3
P Testen mit JUnit Allgemeine Java-Themen 8
7 JUnit: Testproblem. Allgemeine Java-Themen 23
G Ant + JUnit Allgemeine Java-Themen 2
F JUnit unter Ant Allgemeine Java-Themen 3
S Integer zu int konvertieren - JUnit Allgemeine Java-Themen 12
G testen mit JUnit? Allgemeine Java-Themen 3
K JUnit 4 User Interaktion Allgemeine Java-Themen 7
M Ant + Junit + Testclass in Jar Allgemeine Java-Themen 3
B JUnit Allgemeine Java-Themen 2
T CheckStyle, JUnit und FindBugs aus Java-Programm starten Allgemeine Java-Themen 2
S JUnit will ins Netz! Allgemeine Java-Themen 2
B JUnit - Gleichen Test x-mal durchlaufen Allgemeine Java-Themen 2
F Hilfe: Adjazenzmatrix mittels JUnit testen. Allgemeine Java-Themen 2
H JUnit Allgemeine Java-Themen 5
N Problem mit Ant und JUnit Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben