gpt4 book ai didi

java - 如何使用 JUnit/Ant 加载属性文件?

转载 作者:搜寻专家 更新时间:2023-11-01 02:16:11 26 4
gpt4 key购买 nike

我使用的是 Ant 1.8、JUnit 4.8.2。我正在尝试加载属性文件并遇到一些问题。属性文件位于我的源目录的根目录中,我将其加载到类路径中,并在类路径中显式加载属性文件。下面是我的 ant build.xml 文件。这是我尝试加载属性的方式......

private void loadTestProperties() { 
try {
Properties prop = new Properties();
InputStream in = getClass().getResourceAsStream("db.properties");
prop.load(in);
in.close();
} catch (Exception e) {
fail("Failed to load properties: " + e.getMessage());
} // try
} // loadTestProperties

它总是以 null 失败(未加载属性)。

<project name="leads-testing" default="build" basedir=".">
<property name="tst-dir" location="/Users/davea/Documents/workspace-sts-2.6.0.SR1/infinitiusa_leads_testing/test" />
<property name="db-props-file" location="/Users/davea/Documents/workspace-sts-2.6.0.SR1/infinitiusa_leads_testing/test/db.properties" />
<property name="TALK" value="true" />

<path id="classpath.base">
</path>
<path id="classpath.test">
<pathelement location="lib/junit-4.8.2.jar" />
<pathelement location="lib/selenium-java-client-driver.jar" />
<pathelement location="lib/classes12.jar" />
<pathelement location="${tst-dir}" />
<pathelement location="${db-props-file}" />
<path refid="classpath.base" />
</path>

<target name="compile-test">
<javac srcdir="${tst-dir}"
verbose="${TALK}"
>
<classpath refid="classpath.test"/>
</javac>
</target>
<target name="clean-compile-test">
<delete verbose="${TALK}">
<fileset dir="${tst-dir}" includes="**/*.class" />
</delete>
</target>

<target name="test" depends="compile-test">
<junit>
<classpath refid="classpath.test" />
<formatter type="brief" usefile="false" />
<test name="com.criticalmass.infinitiusa.tests.InfinitiConfigOldG25Base" />
</junit>
</target>

<target name="all" depends="test" />
<target name="clean" depends="clean-compile-test" />
</project>

有人知道加载属性文件的正确方法吗?谢谢,-戴夫

最佳答案

尝试从 getClass().getResourceAsStream() 加载资源将导致根据类的包名称查找 db.properties,即在一个目录(在类路径中),例如 com/criticalmass/infinitiusa/...

相反,要从类路径的根加载,请尝试类似的方法

InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream("db.properties");

关于java - 如何使用 JUnit/Ant 加载属性文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5916240/

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