gpt4 book ai didi

java - 当我的 JUnit 测试从 Ant 运行时,getPackage() 返回 null

转载 作者:行者123 更新时间:2023-11-29 06:22:28 32 4
gpt4 key购买 nike

我在运行 JUnit 测试时遇到问题。

它在 Eclipse 中运行良好,但现在我正尝试使用 Ant 从命令行运行它。问题在于以下代码返回 null:getClass().getPackage()

我正在像这样运行我的 JUnit 测试:

    <junit fork="no" printsummary="yes" haltonfailure="no">
<classpath refid="junit.classpath" />
<batchtest fork="yes" todir="${reports.junit}">
<fileset dir="${junit.classdir}">
<include name="**/FileHttpServerTest.class" />
<exclude name="**/*$*" />
</fileset>
</batchtest>
<formatter type="xml" />
...

我用 Google 搜索了此类错误,并找到了很多关于类加载器不当行为的引用资料。但我发现没有任何信息能给我足够的信息来解决我的问题。

我真的需要 getClass().getPackage() 来不返回 null。谁能帮帮我?

谢谢,菲尔

最佳答案

我不确定您要对哪个对象执行 getClass().getPackage()?查看 API Javadoc 对此方法的说明,我猜问题是当您从命令行运行它时,JUnit 正在由 Bootstrap 类加载器加载,而您正在执行 getPackage() 操作的对象是由以下之一加载的子类加载器。

不确定这是否有意义,但是因为 getPackage 正在尝试使用 Bootstrap 类加载器定位包,而标准类加载器行为不会查看其子项,所以它返回 null。

如果你能更多地了解你正在执行此操作的对象,我可以更具体

关于java - 当我的 JUnit 测试从 Ant 运行时,getPackage() 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2492915/

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