Jenkins中没有此类File异常,但在本地运行良好

时间:2018-10-12 14:40:19

标签: java jenkins

我有一个用于代码的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

推送时是否需要更改文件路径?

2 个答案:

答案 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