我使用下面的代码来打印/访问测试用例中的根资源位置:
this.getClass().getClassLoader().getResource(".")
但是,当我使用Maven或ANT运行测试用例时,会产生不同的结果。对于Maven构建,我得到正确的路径“C:\ ....”,但是ANT在这里返回null
。
知道我在这里缺少什么吗?
更新:项目结构 - src / resources | TST /资源。
答案 0 :(得分:0)
Maven和Ant使用不同的类加载器系统。 Maven uses the Classworlds框架
Maven使用我们创建的Classworlds类加载框架 我们的类加载器图。
而Ant uses the "Java's delegation model"
Ant的类加载器实现使用Java的委托模型
您的结果可能会有所不同,因为您调用的ClassLoader
getResource(".")
在Maven和Ant之间不一样。您将得出的结果高度依赖于ClassLoader
实现。
答案 1 :(得分:0)
看起来在2.5之前的ANT版本中存在一个错误,它导致ANT既不复制tst / resources也不将它们添加到类路径(JIRA#IO-451)。