无法通过测试用例访问src / main / resources中的文件

时间:2013-09-18 14:55:31

标签: java unit-testing junit

我在file.dat中有src/main/resources

当我尝试通过jar文件测试加载此文件的类时,测试失败,因为它无法在路径(I/O Exception)中找到该文件。我通过测试获得的路径是:

/home/usr/workspace/project/target/test-classes/file.dat

target/test-classes任何想法都不存在该文件?

2 个答案:

答案 0 :(得分:19)

来自src/main/resources的文件将在主程序的运行时期间在类路径上可用,而来自src/main/resourcessrc/test/resources的文件将在测试运行期间在类路径上可用。

检索驻留在类路径上的文件的一种方法是:

Object content = Thread.currentThread().getContextClassLoader().getResource("file.dat").getContent();

.. content的类型取决于文件内容。您还可以将文件作为InputStream获取:

InputStream contentStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("file.dat");

答案 1 :(得分:5)

如果文件在

  

的src /主/资源/ FILE.DAT

您可以获取该文件的URL:

  

的getClass()的getResource( “/ FILE.DAT”);