gpt4 book ai didi

java - 更改位于 src/test/resources 中的属性文件

转载 作者:行者123 更新时间:2023-12-01 11:46:42 26 4
gpt4 key购买 nike

我正在探索 Apache Common Configuration,并希望进行一个测试,仅从测试中的 src/test/resources 中的 xml 文件读取/写入属性。到目前为止,我的阅读没有任何问题,但无法向该文件写入任何内容。如果我将文件的位置从 scr/test/resources 更改为文件系统中的另一个位置(例如:c:/test),则一切正常。你能帮我解决这个问题吗?

编辑

这是我迄今为止尝试过的:

    @Test
public void test() throws ConfigurationException {
//First with data.xml located in src/test/resources
XMLConfiguration config = new XMLConfiguration("data.xml");

List<Object> rows = config.getList("user.username");
System.out.println(rows);

//This is not working
config.setProperty("user.username", "FromTest");
config.save();

// Second with data.xml in different location
XMLConfiguration config = new XMLConfiguration("c:/temp/data.xml");

List<Object> rows = config.getList("user.username");
System.out.println(rows);

//This works
config.setProperty("user.username", "FromTest");
config.save();
}

谢谢。

最佳答案

好吧,您没有提供有关运行上下文的太多见解,但是从 src/test/resources 路径来看,我猜您正在使用 Maven。如果这是真的,则会发生以下情况:

  1. Maven 将资源复制到目标/测试类
  2. 测试方法对复制的资源进行操作,因此target/test-classes/data.xml

如果你检查这个文件,它就可以工作。我只是查看了源文件,而不是实际从代码中读取的文件。

与第二个测试c:/temp/data.xml的区别在于,前者是相对路径,而后者是绝对路径,并且不在Maven的范围内。

关于java - 更改位于 src/test/resources 中的属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29086080/

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