Уважаемое сообщество, помогите, пожалуйста.
Проблема вот в чем: я пишу тесты, используя WebDriver + JUnit.
Пишу и до последнего момента гоняла свои тесты только на базе ОС Windows
Соответственно, все ссылки на файлы, которые должны быть загружены во время тестов, прописаны в формате:
БАЗОВЫЙ ПУТЬ + “\папка_1\папка_2\Файл”
Теперь мне предстоит использовать тесты для Линукс.
И путь к файлу должен выглядеть вот так: БАЗОВЫЙ ПУТЬ + “/папка_1/папка_2/Файл”.
Я думаю решать это таким путем: нужно будет создать обертку, в которой будет проверяться тип файловой системы, и если ОС != Windows, выполнять замену \ на /
Собственно вопрос: не изобретаю ли я велосипед, возможно, у меня в корне неправильный подход к вопросу?
Обычный слэш распознается одинаково всеми системами, поэтому самый простой способ использовать его и не делать никаких замен. Обратный, да, будет считаться за знак экранирования в linux подобных системах.
Так что решение или делать обычный слеш /, или двойной обратный - \\ (тоже будет корректно работать на всех системах, т.к. он будет как-бы экранировать один одиночный слеш, а винде все равно сколько там слешей).
Привет всем! У меня тож была подобная проблема. Я решил ее следующим образом, те файлы, что нужны были для тестов (фото для аватаров, фото товаров) я просто положил в resources/имя_каталога и соответственно они переносились с платформы - на другую платформу без особых проблем. Если нужны “тонкости” - поделюсь с удовольствием.
Файлы у меня лежат в папке resources/имя_каталога
для метода sendKeys() в качестве параметра я передаю строку FILE, объявленную вот так:
public static final String FILE = BASE_PATH + “tests/java/src/test/resources/Files/file.xls”;
Если использовать путь в таком вот виде - метод не отрабатывает.
Если использовать вот так:
public static final String FILE = BASE_PATH + “tests\\java\\src\\test\\resources\\Files\\file.xls”;
Все отлично проходит.