Java在本地读取测试源文件,但无法在Bamboo服务器上读取

时间:2018-09-19 15:01:53

标签: java bamboo

位于src\test\java\irmsUtilities\General\MyTest.java

JUnit测试从src\test\resources​\读取文件,例如src\test\resources​\MyData1.txt。 Windows box有两种类似的实现:

private String readResourceFile(String fileName) throws IOException {  // fileName = "/MyData1.TXT"​​

  StringBuilder retStr = new StringBuilder();
  URL url = this.getClass().getResource(fileName);
  InputStream is = url.openStream();
  BufferedReader br = new BufferedReader(new InputStreamReader(is));
  String line;
  while ((line = br.readLine()) != null) {  retStr.append(line).append("\n");  }
  return retStr.toString();
}

OR

private String readResourceFile(String fileName) throws IOException {
  StringBuilder retStr = new StringBuilder();
  fileName = "src/test/resources"+fileName;   
  BufferedReader br = new BufferedReader(new FileReader(new File(fileName)));
  String line;
  while ((line = br.readLine()) != null) {
    retStr.append(line).append("\n");
  }

  return retStr.toString();
}
上面的

上面的代码读取文件并通过本地测试(Windows),但是无法在Bamboo服务器上找到文件。 java.io.FileNotFoundException: src/test/resources/MyData1.TXT (No such file or directory)​

我应该如何更改IO来获得儿子Bamboo的测试文件?

1 个答案:

答案 0 :(得分:1)

Bamboo服务器是否在Linux上运行?

对于Windows文件src \ test \ resources \ MyData1.txt和src / test / resources / MyData1.TXT是相同的; Linux文件系统区分大小写,因此MyData1.txt和MyData1.TXT是两个不同的文件。

此外,出于相同的原因(Win与* nix)对EOL(“ \ n”)进行硬编码也是个坏主意-改用System.lineSeparator()。