Хм, например мы хотим, чтобы по дефолту у всех тестов было ожидание на 4 а 10 секунд, не было автоматических скриншотов и кастомная директория для загрузки файлов. Но при этом у нас несколько фикстур для тестов, как сейчас захендлить это посредством Selenide?
Под фикстурой условный BaseTest, с методом BeforeAll/BeforeSuite. В джава множественного наследования нет, да и ситуаций когда тебе нужно разные фикстуры для разных тестов хватает.
а через интерфейсы не пробовали? В одном сделать BeforeAll с аллюром, в другом еще с чем-нибудь. И перечисляете то, что нужно. Только название разные должны быть у фикстур, конечно же.
Не пробовал, но в таком случае ты должен кругом таскать этот интерфейс и не провтыкивать добавлять, + самом метод будет вызываться несколько раз и делать одно тоже, что так себе.
Да, при таком подходе есть риск, что в каком-то тесте ты можешь забыть прописать UITestsFixture. Но можно сделать так, чтобы тесты валились, если ты забыл прописать.
Но по крайней мере я понял, что вы хотите сделать - чтобы один раз положить файлик selenide.properties в classpath и нигде ничего больше не прописывать. Спасибо. Вроде разумно.
@petro_ov Но тогда ещё пара вопросов: 1. Если там глобальные настройки длы всех тестов типа таймаута, зачем подкладывать этот файл руками на дженкинс? Почему бы его сразу не закоммитить в проект? 2. Что, если в каком-то тесте тебе не подойдёт содержимое этого файла? Отменить его загрузку ведь уже не получится.
Дефолтный файл и так лежит в репнике, отдельный лишь используются в специфических тестах. Просто заменять один файл легче, мб имхо, чем пробрасывать с пол дюжины пропертей в билд. (Файлы хранятся под разными id и когда нужно, их явно передаем в настройке джобы и он перезаписывает дефолтный, если кастомных параметров мало то -D… и погнали)
Да, верно: надо добавлять каждому отдельно. Но я предполагаю, что по-любому придется каждому самому добавлять что-то подобное, потому что кроме селенида, в проекте всегда будут какие-то ещё настройки. Это неизбежно.