本文主要是介绍maven test new FileInputStream找不到文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
现象:
正常运行及手动运行单元测试时,FileInputStream都能找到相对路径文件。(文件在与项目位于同一个父目录)但执行maven test的时候,就提示找不到这个文件。
String jtrServerCfgFilePath = "./cfgs/jtr-ts-s-cfg.xml";
new FileInputStream(jtrServerCfgFilePath)
解决办法:
修改pom文件,指定工作目录
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><configuration><!--设置工作目录为项目基础目录的上级目录,以便顺利读取到相对路径文件--><workingDirectory>..</workingDirectory></configuration></plugin>
分析
不指定工作目录时,它可能发生变化,比如正常运行时工作目录为项目所在目录,而maven test时它就变成了项目目录本身,因为工作目录变了,所以相对路径文件也就找不到了。
这篇关于maven test new FileInputStream找不到文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!