一直用System.getProperty("user.dir")来获取文件目录,我在执行单个方法调试和执行测试脚本的时候碰到一个问题,
我写了一个类ElementInitialize初始化数据模块,单个调试这个类的时候获取的目录为:D:projectmyTest,测试类RunCases调用ElementInitialize.getPageObjectManager()获取数据时,得到的目录是
D:projectmyTestautoAppUI,autoAppUI是我项目模块的名字,两个路径的不一样导致我测试类执行的时候一直报空指针异常,为什么同一段代码(System.getProperty("user.dir")),两个地方执行获取到的路径会不一样呢?
我去看了2个类的Run Configuration配置,ElementInitialize配置的Working directory是D:projectmyTest,而测试类RunCases配置的Working directory是$MODULE_WORKING_DIR$,用的是一个相对的路径,包含了项目模块的名称。
我在调试ElementInitialize类的时候一直没问题,执行测试类RunCases的时候一直报空指针,为了解决这个问题,我把ElementInitialize的Working directory也配置$MODULE_WORKING_DIR$,修改了路径,两边都能执行了。
所以,System.getProperty("user.dir")这个句话的意思,我认为获取的是程序运行时的工作目录,不同类所属的目录不一样,所以需要设置一致。
除了修改一致的working directory,还可以优化代码,修改判断释放包含模块目录