Java 在JUnit、AppEngine中设置相对文件路径的根
我有一些引用文件名的代码。在服务器上,此引用相对于我的Java 在JUnit、AppEngine中设置相对文件路径的根,java,google-app-engine,junit,Java,Google App Engine,Junit,我有一些引用文件名的代码。在服务器上,此引用相对于我的war目录。但是,当我运行测试时,似乎没有设置相对根目录-只有从本地HD根目录开始的绝对路径才能找到文件 我正在AppEngineLocalServiceTestHelper的上下文中进行测试,它在getAppDir方法中返回我的war目录,但代码仍然无法理解相对路径 如何在JUnit测试中设置相对文件名的根?对于我的单元测试,我创建了一个名为的实用程序类(参见代码)。它通过查找类路径来查找文件。如果您关心的文件位于类路径中,那么这种方法非常
war
目录。但是,当我运行测试时,似乎没有设置相对根目录-只有从本地HD根目录开始的绝对路径才能找到文件
我正在AppEngineLocalServiceTestHelper
的上下文中进行测试,它在getAppDir
方法中返回我的war目录,但代码仍然无法理解相对路径
如何在JUnit测试中设置相对文件名的根?对于我的单元测试,我创建了一个名为的实用程序类(参见代码)。它通过查找类路径来查找文件。如果您关心的文件位于类路径中,那么这种方法非常有效。如果不在类路径中,则这对您没有帮助。有许多选项。在任何情况下,我都会将文件访问(或至少是文件路径解析)封装在一个单独的类中。这样,您可以:
- 在测试中模拟该类以提供正确的文件(路径)
- 将环境变量传递给测试类以解析正确的文件(路径)
- 如果找不到文件,请提供回退实现(测试中就是这样)
- 等等