Mar*_*ina 3 java eclipse maven
我在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
尝试将其添加到pom.xml
<testResources>
<testResource>
<directory>${basedir}/src/main/WEB-INF/test/file</directory>
</testResource>
<testResource>
<directory>${basedir}/src/main/WEB-INF/test/java</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</testResource>
</testResources>
Run Code Online (Sandbox Code Playgroud)
将其添加到build部分,它使您可以指定testResource文件夹的位置以及测试类的位置。考虑检查该链接为好,有一个例子在这里,可以帮助您创建的pom.xml。
请记住,这里有资源部分和testResource部分,您应该修改第二个指向正确的站点。
也考虑使用 final File javaFolder = new File("classpath:/WEB-INF/test/file");
| 归档时间: |
|
| 查看次数: |
4753 次 |
| 最近记录: |