Невозможно получить относительный путь в IntelliJ для файла ресурсов - Java / Selenium - PullRequest
0 голосов
/ 07 марта 2019

Я борюсь с получением относительного пути к файлу в папке ресурсов.Я потратил несколько часов, пытаясь найти другие разрешения в других потоках, но потерпел неудачу, я не знаю, был ли неправильный синтаксис, но я был бы очень признателен за помощь в том, что именно писать.Снимок экрана прилагается

Настройка файла

Я запускаю свои тесты из моего класса TestRunner, который переходит в PropertiesUtil, чтобы получить браузер для запуска тестов из config.propertiesfile.

Файл config.properties находится в папке ресурсов, но я не могу получить доступ к файлу конфигурации, используя относительный путь.Он отлично работает как абсолют, но это означает, что он не работает, когда кто-то другой запускает его.

Если я пытаюсь использовать другие пути, я получаю ошибку:

2019-03-06 21:21:16 INFO  TestRunner - Before running
java.io.FileNotFoundException: config.properties (No such file or directory)
    at java.io.FileInputStream.open0(Native Method)
    at java.io.FileInputStream.open(FileInputStream.java:195)

Пожалуйста, помогите!Я слишком долго застрял на этом.

structure

Пробовал с ClassLoader, как предложено, но это не работает в propertiesUtil, и я не совсем уверенкак написать это в сочетании с тем, что у меня есть (как жаловались на статические / нестатические).При запуске из TestRunner, чтобы попытаться отладить и понять, это не дает мне много полезной информации. ClassLoader

Я также пробовал подобное, что видел в другом месте.Та же проблема: нестатическая и статическая ошибка

Ответы [ 2 ]

0 голосов
/ 08 марта 2019

Удивительный !!Это работает блестяще.Для справки, кто-нибудь найдет это - это скриншот кода с исправлением, описанным выше!

Рабочий код теперь реализован

0 голосов
/ 07 марта 2019

попробуйте что-то вроде этого.

   public static void readPropertiesFiles() {
        ClassLoader classLoader = PropertiesUtil.class.getClassLoader();
        String path = classLoader.getResource("config.properties").getPath();
        System.out.println(path);
    }
...