Java 当运行与属性文件关联的Junit时,如何访问XML文件?

Java 当运行与属性文件关联的Junit时,如何访问XML文件?,java,xml,spring,maven,junit,Java,Xml,Spring,Maven,Junit,我正在开发一个spring+maven项目。在一些课程中,我正在阅读项目中的XML文件。XML的路径位于属性文件上。但它将从卡塔琳娜基地出发。工作正常。但是当我需要执行测试用例时,我无法获得正确的路径,因为它将依赖于Catalina base。那么,当Junit运行时,如何访问我的XML文件呢 我的属性文件 projecthieararchy.read.derectory=/webapps/phdash/WEB-INF/config/Programs.xml XML正在读取各种.java文件

我正在开发一个spring+maven项目。在一些课程中,我正在阅读项目中的XML文件。XML的路径位于属性文件上。但它将从卡塔琳娜基地出发。工作正常。但是当我需要执行测试用例时,我无法获得正确的路径,因为它将依赖于Catalina base。那么,当Junit运行时,如何访问我的XML文件呢

我的属性文件

 projecthieararchy.read.derectory=/webapps/phdash/WEB-INF/config/Programs.xml
XML正在读取各种.java文件,因此我需要获取属性文件的类路径组合

即。 像这样定位的测试文件

1。框架-->src-->测试-->委托-->测试1.java

2。框架-->src-->测试-->委托-->somefolder-->>Test2.java

我可以添加一个XML副本来测试, 可以找到XML

框架-->资源-->Programs.xml

如何在属性文件中添加测试文件路径


谢谢。

我的建议是告诉junit runner XML文件的基本目录在哪里。您可以将junit runner的“工作目录”配置为Catalina base:

  • 如果您正在IDE中运行junit测试,例如Eclipse。检查Junit的配置选项卡,您将找到在哪里配置工作目录
  • 如果您正在命令行中运行junit测试。您可以这样做:

    $cd/path/to/Catalina/base

    $(调用junit runner)


您可以在
src/test/resources
中创建一个特定于测试的属性文件,该文件将包含
projecthierarchy.read.derectory
,其值适用于测试。e、 g

projecthieararchy.read.derectory=path/used/by/tests/to/Programs.xml

这将覆盖生产属性中的实际值-在运行测试时。

那么,它将仅在我的电脑上工作?因为文件路径取决于PC。如果文件包含在项目中,则可以使其相对于项目的根目录,例如:
src/main/resources/Programs.xml
。然后它将在任何人的pc机上工作,因为XML文件位于以下路径中/home/sachith/SCCheck/dashboard/framework/src/test/java/XMLResources/TestPrograms.xml那么相对路径是什么呢?