System.getProperty("user.dir")获取的到底是什么路径?

时间:2023-03-10 06:09:46
System.getProperty("user.dir")获取的到底是什么路径?

一直用System.getProperty("user.dir")来获取文件目录,我在执行单个方法调试和执行测试脚本的时候碰到一个问题,

我写了一个类ElementInitialize初始化数据模块,单个调试这个类的时候获取的目录为:D:\project\myTest,测试类RunCases调用ElementInitialize.getPageObjectManager()获取数据时,得到的目录是

D:\project\myTest\autoAppUI,autoAppUI是我项目模块的名字,两个路径的不一样导致我测试类执行的时候一直报空指针异常,为什么同一段代码(System.getProperty("user.dir")),两个地方执行获取到的路径会不一样呢?

我去看了2个类的Run Configuration配置,ElementInitialize配置的Working directory是D:\project\myTest,而测试类RunCases配置的Working directory是$MODULE_WORKING_DIR$,用的是一个相对的路径,包含了项目模块的名称。

我在调试ElementInitialize类的时候一直没问题,执行测试类RunCases的时候一直报空指针,为了解决这个问题,我把ElementInitialize的Working directory也配置$MODULE_WORKING_DIR$,修改了路径,两边都能执行了。

所以,System.getProperty("user.dir")这个句话的意思,我认为获取的是程序运行时的工作目录,不同类所属的目录不一样,所以需要设置一致。

除了修改一致的working directory,还可以优化代码,修改判断释放包含模块目录

System.getProperty("user.dir")获取的到底是什么路径?


System.getProperty("user.dir")获取的到底是什么路径?

System.getProperty("user.dir")获取的到底是什么路径?

System.getProperty("user.dir")获取的到底是什么路径?