Как получить тестовый файл ресурсов? - PullRequest
57 голосов
/ 03 апреля 2011

В модульном тесте мне нужно импортировать CSV-файл. Он находится в папке ресурсов, т.е. src / test / resources

Ответы [ 6 ]

63 голосов
/ 03 апреля 2011

Возможно, просто полезно, если у вас есть доступный файл, например, при выполнении юнит-тестов - это не загрузит его из банка AFAIK.

20 голосов
/ 03 апреля 2011

Вы можете получить доступ к ресурсам теста, используя загрузчик классов текущего потока:

InputStream stream = Thread.currentThread().getContextClassLoader()
    .getResourceAsStream("YOURFILE.CSV");
12 голосов
/ 11 декабря 2013

с гуавой

import com.google.common.io.Resources;
URL url = Resources.getResource("YourFile.csv");
2 голосов
/ 29 ноября 2016
// assuming a file src/test/resources/some-file.csv exists:

import java.io.InputStream;
// ...
InputStream is = getClass().getClassLoader().getResourceAsStream("some-file.csv");
2 голосов
/ 03 апреля 2011
import org.apache.commons.io.FileUtils;
...
 final File dic = FileUtils.getFile("src","test", "resources", "csvFile");

начиная с Apache Commons IO 2.1 .

0 голосов
/ 05 июня 2014

Это решение не нуждается в библиотеках.Сначала создайте класс 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 и именем вашего файла в папке ресурсов.

File cvsTestFile = TestUtil.GetDocFromResource(getClass(), "MyTestFile.cvs");
...