JUnit — Suite тест. Запуск нескольких тестов с помощью аннотаций @Suite и @RunWith
Запуск нескольких тестов с помощью аннотаций @Suite и @RunWith.
Основной код описан в JUnit — введение в юнит-тесты. Пример JUnit Hello world.
Запустить несколько тестов можно с помощью аннотаций @RunWith и @Suite. Создадим простой класс с использованием этих аннотаций.
SuiteTestClass:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
package ru.javastudy.junit; import org.junit.runner.RunWith; import org.junit.runners.Suite; /** * Created by retinka on 13.01.2016. */ @RunWith(Suite.class) @Suite.SuiteClasses({CalculatorTest.class, SecondClassTest.class} ) public class SuiteTestClass { } |
Suite.class — класс из библиотеки JUnit. Далее перечислены классы, которые требуется запустить @Suite.SuiteClasses({CalculatorTest.class, SecondClassTest.class} ).
CalculatorTest.class (описан в базовой статье):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
package ru.javastudy.junit; import org.junit.*; import static org.junit.Assert.*; /** * Created by retinka on 13.01.2016. */ public class CalculatorTest { private Calculator calculator; @BeforeClass public static void beforeClass() { System.out.println(""); System.out.println("Before CalculatorTest.class"); } @AfterClass public static void afterClass() { System.out.println(""); System.out.println("After CalculatorTest.class"); } @Before public void initTest() { System.out.println(""); System.out.println("initTest()"); calculator = new Calculator(); } @After public void afterTest() { System.out.println("afterTest()"); calculator = null; } @Test public void testGetSum() throws Exception { System.out.println("testGetSum()"); assertEquals(15, calculator.getSum(7,8)); } @Test public void testGetDivide() throws Exception { System.out.println("testGetDivide()"); assertEquals(20, calculator.getDivide(100,5)); } @Test public void testGetMultiple() throws Exception { System.out.println("testGetMultiple()"); } @Test(expected = ArithmeticException.class) public void divisionWithException() { System.out.println("divisionWithException()"); calculator.getDivide(15,0); } @Ignore("Message for ignored test") @Test public void ignoredTest() { System.out.println("will not print it"); } @Test(timeout = 500) public void timeStampTest() { System.out.println("timeStampTest()"); while (true); } } |
SecondClassTest:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
package ru.javastudy.junit; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; /** * Created by retinka on 13.01.2016. */ public class SecondClassTest { @BeforeClass public static void beforeClass() { System.out.println("Before SecondClassTest.class"); } @AfterClass public static void afterClass() { System.out.println("After SecondClassTest.class"); } @Test public void someSecondTest() { System.out.println("someSecondTest"); } } |
Методы просто выводят в консоль текстовую информацию. В результате запуска класса SuiteTestClass будут запущены оба указанных класса.
Исходный код
17 22576 Total Views 2 Views Today