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的测试文件?
答案 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()。