我在Maven和Eclipse中的测试有问题。Maven - 覆盖测试资源文件夹
我从Eclipse中运行我的测试套件和一切运作良好,但是当我运行
mvn test
我有一个例外,它出现时,我试图在测试类似案例,阅读一些文件:
final File javaFolder = new File("WEB-INF/test/file");
当我这样做,我有一个空指针异常和调试我看到的路径是
C:\Users\myUser\AppData\Local\Temp\WEB-INF\test\file
另外,我认为这很重要,因为我们需要在特定的地方使用测试源,所以我重写了我的pom中的测试目录。我们这样做:
<testSourceDirectory>WEB-INF/test/java</testSourceDirectory>
所以我的问题是:为什么使用Maven运行测试没有得到正确的工作目录?我可以定义一个特定的文件夹来读取一些文件吗?我试过的东西像
getClass().getResource("myFile").getFile()
但是当我打印的绝对路径,我再次
有C:\Users\myUser\AppData\Local...\myFile
编辑:我没有机会按照约定,因为我说的是一个大的系统,从未使用Maven,因此无法更改所有的目录结构。不幸的是,这不是我的想法。
此外,当打印我的“user.dir来”我有:C:\Users\myUser\AppData\Local\Temp
EDIT2:我的项目路径是另一个分区E:\work\myProject
感谢您的回复。这个:'C:\ Users \ Marcos \ AppData \ Local \ Temp \ classpath:\ WEB-INF \ test \ file'所以我再次出现了NPE,原因很明显:( – MarcosTonina
加入testResource目录很可能解决了这个问题*假设*他正在使用后面提到的'getResource()'方法,顺便说一句,组合是保持测试灵活性的最佳方法。当你从一个构建测试转换到一个测试运行时,其他解决方案最终会打破(这是我最好的猜测,为什么他们需要在WEB-INF中) – Gus
将我的测试从WEB-INF移动到另一个文件夹可能是一个选项您是否建议? – MarcosTonina