gpt4 book ai didi

java - ant build 导致属性文件的静态初始化失败

转载 作者:行者123 更新时间:2023-12-01 15:45:55 25 4
gpt4 key购买 nike

我有一个小型 java 项目,我使用 TestNG + Eclipse 执行该项目,并且运行良好。我使用属性文件将测试数据外部化,并在测试类的一个静态 block 中对其进行初始化 -

public class SanityTest extends SelTestCase {

static Properties properties = new Properties();
static String pickUp;
static String dropOff;

static {
try {
properties
.load(SanityTest.class
.getResourceAsStream("/com/product/testdata/testdata.properties"));
pickUp = properties.getProperty("pickUp");
dropOff = properties.getProperty("dropOff");
} catch (IOException e) {
e.printStackTrace();
}
}

/**
* Verifies the booking of car on car hire market
* @throws Exception
*/
@Test
public void testBookingModule() throws Exception {
// Some tests here
}

但是当我使用 ant build (1.8) 执行相同操作时,我在目标“run”上遇到以下异常 -

 [testng] Caused by: java.lang.NullPointerException
[testng] at java.util.Properties$LineReader.readLine(Properties.java:418)
[testng] at java.util.Properties.load0(Properties.java:337)
[testng] at java.util.Properties.load(Properties.java:325)

我无法弄清楚太多,还检查了“bin”是否已创建并具有所有相应的文件。有什么我错过的吗?

最佳答案

对我来说,你必须使用包/目录名称来检索由类加载器作为资源加载的文件,这似乎很奇怪。

通常,当您使用 getResourceAsStream 时,您将数据文件放在类所在的位置,即 .class 文件所在的位置(或者放在资源目录中,Eclipse 将在构建时复制它),然后通过仅指定文件名。

尝试

 properties.load(SanityTest.class.getResourceAsStream("testdata.properties"));

其中 testdata.properties 与 SanityTest.class 位于同一文件夹中

问候, 史蒂芬

关于java - ant build 导致属性文件的静态初始化失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7010120/

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