В openshift отказано в доступе (publickey, gssapi-keyex, gssapi-with-mic)

Да, можно надежно запускать методы настройки и сбрасывания до и после любых тестов в наборе тестов. Позвольте мне продемонстрировать код:

package com.test;

import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;

@RunWith(Suite.class)
@SuiteClasses({Test1.class, Test2.class})
public class TestSuite {

    @BeforeClass
    public static void setUp() {
        System.out.println("setting up");
    }

    @AfterClass
    public static void tearDown() {
        System.out.println("tearing down");
    }

}

Итак, ваш класс Test1 будет выглядеть примерно так:

package com.test;

import org.junit.Test;


public class Test1 {
    @Test
    public void test1() {
        System.out.println("test1");
    }

}

... и вы можете себе представить, что Test2 выглядит схоже. Если вы запустили TestSuite, вы получите:

setting up
test1
test2
tearing down

. Таким образом, вы можете видеть, что установка / отрыв запускается только до и после всех тестов соответственно.

Улов: это работает только в том случае, если вы используете тестовый набор, а не для тестирования Test1 и Test2 как отдельных тестов JUnit. Вы упомянули, что используете maven, и плагин maven surefire любит запускать тесты по отдельности, а не в составе пакета. В этом случае я бы рекомендовал создать суперкласс, который расширяется каждый тестовый класс. Суперкласс затем содержит аннотированные методы @BeforeClass и @AfterClass.

Что касается проблемы с неудачными тестами, вы можете установить maven.test.error.ignore, чтобы сборка продолжалась неудачно тесты. Это не рекомендуется в качестве постоянной практики, но оно должно заставить вас функционировать до тех пор, пока все ваши тесты не пройдут. Более подробно см. Документацию maven surefire .

24
задан Dave Cassel 28 August 2018 в 13:38
поделиться