Затем нам понадобится тестовый тег ресурсов, чтобы сообщить maven, где находятся эти ресурсы, если они находятся вне каталога ресурсов. <testResources> <testResource> <directory> $ {project.basedir} / src / test / resources </ directory> </ testResource> </ testResources>
есты Appium + JUnit отлично работают локально, но на aws не могут найти файлы свойств. Мои тесты помещены подsrc/test/java
и файлы свойств, используемые в тестах подsrc/test/resources/locale
, Zip с зависимостями содержимого:
├── app-0.1-tests.jar
├── app-0.1.jar
└── dependency-jars
├── ...
app-0.1-tests.jar
содержание:
├── META-INF
│ ├── MANIFEST.MF
│ ├── maven
│ ├── ....
├── com
│ ├── ....
└── locale
├── en_EN.properties
К сожалению, когда я пытаюсь загрузить файлы свойств, у меня возникает IOException - файл не найден в локации:file:/tmp/scratchcC4yMz.scratch/test-packagefQ2euI/app-0.1-tests.jar!/locale/en_EN.properties
Я пытался загрузить их несколькими способами, каждый раз, когда у меня возникает одна и та же проблема. Локально все работает как шарм. Пример кода:
File file = new File(ClassName.class.getResource("/locale/en_EN.properties").getPath());
try (InputStream inputStream = new FileInputStream(file.getPath());
InputStreamReader streamReader = new InputStreamReader(inputStream, Charset.forName("UTF-8"))) {
Properties properties = new Properties();
properties.load(streamReader);
return properties;
} catch (IOException e) {
System.err.println("Properties file not found: " + file.getPath());
}
или с помощью загрузчика классов:
ClassLoader classLoader = getClass().getClassLoader();
URL resource = classLoader.getResource("/locale/en_EN.properties");
Может кто-нибудь предложить решение, как прочитать файл свойств, расположенный в ресурсах?