Ignorování JUnit testů

V případě, že potřebujete, aby se některé JUnit testy nespouštěly, nabízí JUnit anotaci @Ignore (javadoc).

import org.junit.Ignore;
import org.junit.Test;

public class JUnitIgnoreTest {

	@Ignore
	@Test
	public void test1() {
		assertEquals(11, 22);
	}

	@Test
	public void test2() {
		assertEquals(2, 2);
	}
}

junit-ignore-annotace

Je vidět, test byl ignorován. Pokud bychom anotaci @Ignore v tomto případě zakomentovali, test by spadl. Anotaci je možné použít na celou třídu. V tom případě se neprovede žádný test z této třídy.

Time test

JUnit i TestNG umožňují pomocí parametru timeout anotace @Test nastavit podmínku testu tak, aby test, pokud má být úspěšný, proběhl do určité doby (definované v milisekundách). V případě, že test trvá déle, jeho běh je ukončen a test je označen jako neúspěšný (failure).

Metoda, která se bude testovat.

public void longMethod() {
	for (int i = 0; i < 1_000_000; i++) {
		System.out.println("myMethod");
	}
}

Test.

@Test(timeout=1000)
public void longMethodTest() {
	longMethod();
}

Kód je stený jak pro JUnit tak pro TestNG. Pro JUnit test se používá anotace org.junit.Test a pro TestNG org.testng.annotations.Test. Pokud bude výše uvedený test trvat déle jak 1000 milisekund, bude označen jako neúspěšný.