【发布时间】:2016-09-26 05:15:17
【问题描述】:
我正在尝试找到一种方法来获取我的 junit 测试中资源文件夹的绝对路径。
我的疑问不是在资源文件夹中获取文件(我现在该怎么做)但是获取资源文件夹的路径。
例如,如果我的资源文件夹中的文件具有以下结构:
/opt/project/view/api/target/classes/
/opt/project/view/api/target/classes/file_in_resources.txt
我想获得/opt/project/view/api/target/classes/ 的位置,而不使用像这样丑陋的东西:
URL location = this.getClass().getResource("/file_in_resources.txt");
String path = location.getPath();
String rightPath = path.substring(0, path.lastIndexOf("/"));
想法是有一个像this.getClass().getResourcesPath()这样的方法,但是这种方法不存在。
怎么办?
【问题讨论】:
-
答案是,根本不要这样做。当您尝试从 .jar 文件运行程序时,资源将位于 .jar 文件中,根本不是单独的文件。无论您想做什么,还有另一种更好的方法,它不需要将资源位置转换为文件路径。
-
@VGR,这应该是一个答案
-
@VGR 如果它只是用于单元测试,那不是问题吗?
-
@Tobb 如果程序要从 .jar 文件运行,则需要针对 .jar 文件运行单元测试。
-
现在怎么办?通常不会针对 jar 文件运行单元测试,这些测试不包括在内。
标签: java unit-testing testng