Как получить файл test resource?
в модульном тесте мне нужно импортировать файл csv. Это находится в папке resources, т. е. src/test / resources
6 ответов
вероятно, просто полезно, если у вас есть файл, например, при выполнении модульных тестов - это не будет загружать его из jar AFAIK.
URL url = Thread.currentThread().getContextClassLoader().getResource("mypackage/YourFile.csv");
File file = new File(url.getPath());
// where the file is in the classpath eg. <project>/src/test/resources/mypackage/YourFile.csv
вы можете получить доступ к тестовым ресурсам, используя classloader текущего потока:
InputStream stream = Thread.currentThread().getContextClassLoader()
.getResourceAsStream("YOURFILE.CSV");
import org.apache.commons.io.FileUtils;
...
final File dic = FileUtils.getFile("src","test", "resources", "csvFile");
// assuming a file src/test/resources/some-file.csv exists:
import java.io.InputStream;
// ...
InputStream is = getClass().getClassLoader().getResourceAsStream("some-file.csv");
это решение не нужно lib. Сначала создайте класс util для доступа к файлам ресурсов.
public class TestUtil(Class classObj, String resourceName) throws IOException{
URL resourceUrl = classObj.getResource(FileSystems.getDefault().getSeparator()+resourceName);
assertNotNull(resourceUrl);
return new File(resourceUrl.getFile());
}
теперь вам просто нужно вызвать метод с классом вашего unitTest и именем вашего файла в папке ressource.
File cvsTestFile = TestUtil.GetDocFromResource(getClass(), "MyTestFile.cvs");