Ответ 1
У вас есть 2 варианта:
1) Передайте путь к вашему тесту через системное свойство (docs)
В твоей памяти ты сможешь сделать что-то вроде:
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.4.2</version>
<configuration>
<systemProperties>
<property>
<name>filePath</name>
<value>/path/to/the/file</value>
</property>
</systemProperties>
</configuration>
</plugin>
</plugins>
</build>
[...]
</project>
Затем в вашем тесте вы можете сделать:
System.getProperty("filePath");
2) Поместите файл внутри src/test/resources в тот же пакет, что и ваш тестовый класс. Затем вы можете перейти к файлу с помощью Class.getResourceAsStream(String fileName) (docs).
Я бы настоятельно рекомендовал вариант 2 по сравнению с вариантом 1. Передача вещей вашим тестам через системные свойства очень грязная ИМО. Он без проблем связывает ваши тесты с тестируемым бегуном и вызывает головные боли в будущем. Загрузка файла из пути к классам - это путь, и почему maven имеет концепцию каталога ресурсов.