Здравствуйте!
На последней стажировке Spring 5/JPA Enterprise (Topjava) наш учебный проект мигрировал с JUnit 4 на JUnit 5.2. Основной процесс миграции достаточно прямолинеен, но есть некоторые нюансы, которые требуют ручного вмешательства. Хочу кратко рассказать про них и создании JUnit 5 Extensions для измерения времени тестов в 10 минутном видео.
Спасибо за внимание!
Надеюсь, что, если на вашем проекте используется JUnit 4 и вы еще не мигрировали на JUnit 5, это небольшое видео вдохновит вас. А также на использование JUnit 5 в Ваших новых проектах.
На последней стажировке Spring 5/JPA Enterprise (Topjava) наш учебный проект мигрировал с JUnit 4 на JUnit 5.2. Основной процесс миграции достаточно прямолинеен, но есть некоторые нюансы, которые требуют ручного вмешательства. Хочу кратко рассказать про них и создании JUnit 5 Extensions для измерения времени тестов в 10 минутном видео.
Код расширения для измерения времени тестов
import org.junit.jupiter.api.extension.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.StopWatch;
public class TimingExtension implements BeforeTestExecutionCallback, AfterTestExecutionCallback, BeforeAllCallback, AfterAllCallback {
private static final Logger log = LoggerFactory.getLogger("result");
private StopWatch stopWatch;
@Override
public void beforeAll(ExtensionContext ctx) {
stopWatch = new StopWatch("Execution time of " + ctx.getRequiredTestClass().getSimpleName());
}
@Override
public void beforeTestExecution(ExtensionContext ctx) {
log.info("Start stopWatch");
stopWatch.start(ctx.getDisplayName());
}
@Override
public void afterTestExecution(ExtensionContext ctx) {
stopWatch.stop();
log.info("stop stopWatch");
}
@Override
public void afterAll(ExtensionContext ctx) {
log.info('\n' + stopWatch.prettyPrint() + '\n');
}
}
Полезные ссылки:
- JUnit 5 homepage
- Overview
- 10 интересных нововведений
- Extension Model
- A Guide to JUnit 5
- Migrating from JUnit 4
- Before and After Test Execution Callbacks
- Conditional Test Execution
- Third party Extensions
- Реализация assertThat
Спасибо за внимание!
Надеюсь, что, если на вашем проекте используется JUnit 4 и вы еще не мигрировали на JUnit 5, это небольшое видео вдохновит вас. А также на использование JUnit 5 в Ваших новых проектах.