我在Maven和Eclipse中进行测试时遇到问题。
我从Eclipse运行测试套件,并且一切正常,但是当我运行时
mvn test
Run Code Online (Sandbox Code Playgroud)
我有一个例外,当我尝试在这样的测试案例中读取一些文件时,它会出现:
final File javaFolder = new File("WEB-INF/test/file");
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我有一个空指针异常并进行调试,我看到路径是
C:\Users\myUser\AppData\Local\Temp\WEB-INF\test\file
Run Code Online (Sandbox Code Playgroud)
另外,我认为重要的一点是我重写了pom中的测试目录,因为我们需要在特殊位置放置测试源。我们以这种方式做到了:
<testSourceDirectory>WEB-INF/test/java</testSourceDirectory>
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:为什么用Maven运行测试没有得到正确的工作目录?我可以定义一个特定的文件夹来读取一些文件吗?我尝试过类似的事情
getClass().getResource("myFile").getFile()
Run Code Online (Sandbox Code Playgroud)
但是当我打印绝对路径C:\Users\myUser\AppData\Local...\myFile时
编辑:我没有机会遵守约定,因为我说的是一个从未使用过Maven的大型系统,因此无法更改所有目录结构。不幸的是,这不是我的愿望。
另外,当我打印“ user.dir”时,我有: C:\Users\myUser\AppData\Local\Temp
Edit2:我的项目路径在另一个分区中 E:\work\myProject