springboottest как предотвратить запуск приложения - PullRequest
0 голосов
/ 01 июня 2018

У меня есть стандартный класс Application, который запускает ETL Spring Spring:

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

с моим тестом Junit, выполняющим что-то вроде:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class MyServiceTest {

    @Autowired
    MyService myService;

    @Test
    public void testInsertions() {
        //do stuff with assertions
    }
}

Моя проблема в том, что когда я выполняюТест junit, приложение также запускает ETL, затем выполняет тест.Как предотвратить запуск приложения?

1 Ответ

0 голосов
/ 01 июня 2018

Я думаю, что есть много альтернатив, и это действительно зависит от того, чего вы пытаетесь достичь.

Одним из вариантов будет запуск ваших тестов с определенным профилем, например testing, исконфигурируйте ваши ETL (я предполагаю, что они просто рабочие места) для настройки на основе какого-либо свойства или определенного профиля.

Например:

Тестовый класс

@ActiveProfiles("testing")
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class MyServiceTest {
    ...
}

Работа / ETL классы

@Component
@Profile("!testing")
public class JobEtlService {
}

Надеюсь, это поможет.

...