在单元测试中,我需要导入一个csv文件。这个位于资源文件夹中,即SRC /测试/资源如何获取测试资源文件?
回答
也许,如果你在做单元测试时必须提供的文件,例如只是有用的 - 这将不会加载它从一个罐子的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
import org.apache.commons.io.FileUtils;
...
final File dic = FileUtils.getFile("src","test", "resources", "csvFile");
您可以使用当前线程的类加载器访问测试资源:
InputStream stream = Thread.currentThread().getContextClassLoader()
.getResourceAsStream("YOURFILE.CSV");
,但我希望有一个java.io.File的,而不是一个InputStream。 – simpatico 2011-04-03 12:54:05
然后使用getClass()。getResource(“/ src/test/resources/YourFile.csv”); http://download.oracle.com/javase/6/docs/api/java/lang/Class.html – Sean 2011-04-03 13:43:14
so,FileUtils.toFile(Thread.currentThread()。getClass()。getResource(“/ src/test /资源/ YourFile.csv“)); – simpatico 2011-04-04 07:10:21
与番石榴
import com.google.common.io.Resources;
URL url = Resources.getResource("YourFile.csv");
as @simpatico想要一个'java.io.File',这个答案可以继续:'File csvFile = new File(url.toURI());' – Abdull 2015-01-30 19:09:07
该解决方案无需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类和你的文件在资源文件夹中的名称的方法。
File cvsTestFile = TestUtil.GetDocFromResource(getClass(), "MyTestFile.cvs");
我可以在哪里得到FileSystems类? – 2014-09-18 12:56:30
@ToKra java.nio.file.FileSystems – rjdkolb 2016-06-14 13:35:04
// assuming a file src/test/resources/some-file.csv exists:
import java.io.InputStream;
// ...
InputStream is = getClass().getClassLoader().getResourceAsStream("some-file.csv");
- 1. 如何测试资源文件?
- 2. 如何从JAR文件获取资源
- 3. 如何立即获取文件资源?
- 4. 如何从spring获取文件资源
- 5. 如何从资源中获取文件
- 6. Android Instrumentation测试获取资源文件句柄
- 7. 使用maven获取测试文件资源
- 8. 如何测试after_sign_in_path_for(资源)?
- 9. 如何获取资源文件中所有资源的名称
- 10. 获取从资源文件
- 11. 如何在config.properties文件中给测试资源文件路径
- 12. 如何访问主文件和测试文件中的资源
- 13. 如何从另一个模块获取测试资源
- 14. Android的扩展文件 - 资源测试
- 15. Maven - 覆盖测试资源文件夹
- 16. Maven Shade插件 - 如何包含测试类和测试资源?
- 17. 如何从资源文件夹中获取文件。 Spring框架
- 18. 获取资源文本文件列表
- 19. 如何手动为单元测试创建测试资源文件夹
- 20. REST资源测试
- 21. C#测试资源
- 22. Javascript测试资源
- 23. .resx资源文件如何进行单元测试?
- 24. 在JUnit测试中读取资源文件
- 25. 从java中的jar文件读取测试资源
- 26. maven3主要资源VS测试资源
- 27. 如何测试嵌套资源
- 28. 如何使maven使用测试资源
- 29. 如何测试冗余资源请求?
- 30. 如何访问测试资源?
我真正想要的是从getResourceAsStream提供路径到文件的抽象。否则新的File/getFile更直接 – simpatico 2011-04-04 21:03:52
它也适用于“YourFile.csv”。 – simpatico 2011-07-15 19:18:14
url对我而言是空的 – hithwen 2013-02-06 12:59:46