@IfProfileValue не работает с JUnit 5 SpringExtension - PullRequest
0 голосов
/ 11 декабря 2018

Я использую junit5 с тестом пружинного стартера, чтобы запустить тест пружины, мне нужно использовать @ExtendWith вместо @RunWith.Однако @IfProfileValue работает с @RunWith(SpringRunner.class), но не с @ExtendWith(SpringExtension.class), ниже приведен мой код:

@SpringBootTest
@ExtendWith({SpringExtension.class})
class MyApplicationTests{

    @Test
    @DisplayName("Application Context should be loaded")
    @IfProfileValue(name = "test-groups" , value="unit-test")
    void contextLoads() {
    }
}

, поэтому contextLoads следует игнорировать, поскольку в нем не указаны тестовые группы env.но тест просто запустить и игнорировать @IfProfileValue.

1 Ответ

0 голосов
/ 11 декабря 2018

Я обнаружил, что @IfProfileValue поддерживает только junit4, в junit5 мы будем использовать @EnabledIf и @DisabledIf.

Ссылка https://docs.spring.io/spring/docs/current/spring-framework-reference/testing.html#integration-testing-annotations-meta

Обновление: благодаря @SamBrannen'scomment, поэтому я использую встроенную поддержку junit5 с совпадениями регулярных выражений и делаю это в качестве аннотации.

@Target({ ElementType.TYPE, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@EnabledIfSystemProperty(named = "test-groups", matches = "(.*)unit-test(.*)")
public @interface EnableOnIntegrationTest {}

, поэтому любой метод тестирования или класс с этой пометкой будет работать только тогда, когда у них есть системное свойство test-группы, которые содержат юнит-тест.

@Test
@DisplayName("Application Context should be loaded")
@EnableOnIntegrationTest
void contextLoads() {
}
...