Java 在本地读取测试源文件,但在 Bamboo 服务器上读取失败
Java reads test source file locally, but fails to read on Bamboo server
位于 src\test\java\irmsUtilities\General\MyTest.java
的 JUnit 测试从 src\test\resources\
读取文件,例如 src\test\resources\MyData1.txt
。
Windows框有两个类似的实现:
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();
}
或
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 以获取测试文件 son Bamboo?
Bamboo 服务器 运行 在 Linux?
对于Windows个文件src\test\resources \MyData1.txt和src/test/resources/MyData1.TXT是一样的; Linux 文件系统区分大小写,因此 MyData1.txt 和 MyData1.TXT 是两个不同的文件。
此外,出于同样的原因(Win vs *nix)硬编码 EOL ("\n") 是个坏主意 - 请改用 System.lineSeparator()。
位于 src\test\java\irmsUtilities\General\MyTest.java
的 JUnit 测试从 src\test\resources\
读取文件,例如 src\test\resources\MyData1.txt
。
Windows框有两个类似的实现:
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();
}
或
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 以获取测试文件 son Bamboo?
Bamboo 服务器 运行 在 Linux?
对于Windows个文件src\test\resources \MyData1.txt和src/test/resources/MyData1.TXT是一样的; Linux 文件系统区分大小写,因此 MyData1.txt 和 MyData1.TXT 是两个不同的文件。
此外,出于同样的原因(Win vs *nix)硬编码 EOL ("\n") 是个坏主意 - 请改用 System.lineSeparator()。