我有一个用于代码的JUnit测试文件,该文件读取xml文件并将其转换为字符串:
String xml = new String(Files.readAllBytes(Paths.get("src\\test\\resources\\testfile.xml")));
该测试在本地运行并通过,但是当我运行Jenkins构建时,它失败并出现java.nio.file.NoSuchFileException:src \ test \ resources \ testfile.xml
推送时是否需要更改文件路径?
答案 0 :(得分:1)
您应该为此使用资源作为流:
InputStream is = getClass().getClassLoader().getResourceAsStream(fileName);
if (is != null) {
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
String xml = reader.lines().collect(Collectors.joining(System.lineSeparator()));
}
(代码可以改进很多,但是会给您一个方向)
(签出按资源尝试处理流)
答案 1 :(得分:1)
好的,所以我弄清楚了我的问题,觉得很傻。当Java在Windows机器上构建时,使用\分隔文件就可以了;但是,在构建Jenkins时,需要使用/
分隔文件即我的文件名应该是
src/test/resources/testfile.xml