gpt4 book ai didi

java - Travis CI 和 JUnit with Gradle 找不到类路径资源

转载 作者:行者123 更新时间:2023-11-30 02:54:36 26 4
gpt4 key购买 nike

我有一个项目,您可以在其 GitHub 页面 here 找到其完整源代码在 feat/config 分支上。我遇到的问题是 ClassName.class.getClassLoader().getResourceAsStream() 总是返回 null,并创建一个 File 并包含完整的内容路径(包括源目录)也会返回 FileNotFoundException

此代码应从类路径资源中加载默认配置值并将其写入文件。它在本地工作,但在 Travis CI 上失败。

public static void writeDefault(String res, File out) throws IOException {
if (!out.exists()) {
out.getParentFile().mkdirs();
out.createNewFile();
}
OutputStream stream = new FileOutputStream(out);
InputStream in = FileConfig.class.getClassLoader().getResourceAsStream(res);
if (in == null) {
stream.close();
throw new FileNotFoundException(res);
}
IOUtils.copy(in, stream);
stream.close();
}

@Test
public void testFileConfig() throws IOException {
System.out.println("Creating default config file");
File testConfigFile = new File("configs/test.txt");
if (!testConfigFile.exists())
FileConfig.writeDefault("configs/test.txt", testConfigFile);
System.out.println("Loading config file");
Config testConfig = FileConfig.loadConfig(testConfigFile);
System.out.println("Loaded value: " + testConfig.getValue("value-1"));
System.out.println("Deleting config file");
testConfigFile.deleteOnExit();
}

上述测试失败并显示以下堆栈跟踪:

jtrial.config.TestConfig > testFileConfig STANDARD_OUT
Creating default config file
jtrial.config.TestConfig > testFileConfig FAILED
java.io.FileNotFoundException: configs/test.txt
at jtrial.config.FileConfig.writeDefault(FileConfig.java:111)
at jtrial.config.TestConfig.testFileConfig(TestConfig.java:24)

.travis.yml 配置文件:

language: java
jdk:
- oraclejdk8
notifications:
email: false
install:
- chmod +x ./gradlew
- ./gradlew --info assemble
script: ./gradlew --info check

最佳答案

咳咳...准备好畏缩和捂脸吧!

我刚刚意识到...我在 .gitignore 文件中有 configs/ 。这不仅忽略了根项目目录中的 configs/目录,而且忽略了 configs/的每个实例。我只是用 ./configs/ 替换它,然后实际上将文本文件添加到新的提交中。 *掌心到一个新的维度*

关于java - Travis CI 和 JUnit with Gradle 找不到类路径资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37636089/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com