我有单元测试方法,该方法使用子级中与测试文件夹相关的资源,当我运行此项目时,它工作正常,但是当我运行父级时,它将父级路径附加到我的相对字符串值JsonFile
而不是当前项目路径
JsonFile = "src/test/resources" + "fileName";
System.out.println(Paths.get("").toAbsolutePath());
String input = new String(Files.readAllBytes(Paths.get(JsonFile)));
我正在使用openJDK11,SureFire插件3.0.0-M3和springboot 2.1.5.RELEASE。
为什么这种不同的行为
mvn clean install -Pjava11
java11是配置文件存在于父pom
我试图覆盖配置文件java11并更改SureFire插件的版本,但是它没有用,我不确切知道问题出在哪里?与Java 8配合使用
答案 0 :(得分:1)
实际上,经过大量搜索,我发现Path.get与文件系统有关,而不与工作目录link shows that 相关。 之后,我更改了使用
之类的classLoader获取测试文件夹中存在的资源文件的机制 ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource(fileName).getFile());
JsonFile = file.getAbsolutePath();
它与父母和孩子mvn clean install -Pjava11
正常工作
我添加什么更改Path.get()的机制并不明显
但从jdk 7起并没有改变