Java Appium JUnit таймаут для конкретных тестов

Всем привет! На Android, некоторые тесты выполняются неприлично долго! Нашли такую настройку драйвера, которая позволяет такие тесты проходить быстрее

capabilities.setCapability(String.valueOf(Setting.WAIT_FOR_IDLE_TIMEOUT), 2000);

Но хотелось бы, чтобы она выполнялась не для всех тестов, а для конкретных! Как можно указать тесты, для которых эта настройка будет применяться в JUnit?

В тестНГ можно тесту добавить группу, например customWaitForIdle.
в BeforeMethod модно проверять есть ли у теста такая группа и если есть то задавать вашу капабилити, а если нет то нет.

Думаю в jUnit тоже есть чтото наподоьие групп для тестов, если нет то можно свою аннотацию сделать и перед тестом смотреть если аннотация есть то задавай такую капабилити, а если нет то не задавай.

1 лайк

@Vladislav_Sobol

Создал аннотацию

@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface SlowTest {

}

Добавил аннотацию в тестовый метод

RatingChatBotTest.java

    @Test
    @SlowTest
    public void ratingChatBot() {

Добавил код в настройках WebDriver

Класс DriverConfigurator.java

Arrays.stream(getClass().getMethods()).filter(m -> {
            if(m.isAnnotationPresent(SlowTest.class)) {
                capabilities.setCapability(String.valueOf(WAIT_FOR_IDLE_TIMEOUT), 1000);
            }
            return false;
        });

Но видимо настройка не применяется, потому как время тестирования не изменилось(