Java Video Recorder поддержка Junit 5
Привет! В преддверии конференции SeleniumCamp, на которой я выступлю с докладом "JUnit4 vs TestNG battle", решил немного приоткрыть для вас завесу тайны.
Пока готовился к докладу и исследовал возможности JUnit 5, решил сделать поддержку Java Video Recorder.
Раньше для подключения записи видео в проект с тестами на JUnit 4 нужно было написать такой код:
class TestVideo{
@Rule
public VideoRule rule = VideoRule();
@Test
@Tag("Flaky")
@Video
public void test(){
open("");
$("")
}
}
Достаточно неплохо, но с выходом JUnit 5 все станет еще лучше.
В пятой версии JUnit сделали поддержку еще большего количества extension points, а также добавили поддержку композитных аннотаций.
Естественно, у меня возникло желание попробовать все эти возможности, и теперь Video Recorder полноценно поддерживает JUnit 5. Хорошая новость - больше не нужно писать VideoRule
class TestVideo{
@Test
@Tag("Flaky")
@Video
public void test(){
open("");
$("")
}
}
Может показаться, что изменение не особо заметно - стало аж на две строчки меньше, но на самом деле появились скрытые возможности. Используя поддержку композитных аннотаций, вы можете сделать код еще более компактным.
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@Video
@Tag("Flaky")
@Test
public @interface FlakyTest {}
Код теста в таком случае станет кратким и более читабельным:
class TestVideo{
@FlakyTest
public void test(){
open("");
$("")
}
}
Более того, вы сможете запускать тесты по тегу "Flaky".
Теперь адепты JUnit 5 смогут без боязни переходить на новую версию.
P.S Если вы хотите еще больше постичь JUnit 5 и узнать, сможет ли он побить TestNG, жду вас на конференции SeleniumCamp =)