gpt4 book ai didi

Java( maven ): how to know where lies the error (useless backtrace)

转载 作者:行者123 更新时间:2023-11-29 03:00:14 25 4
gpt4 key购买 nike

我正在用 maven ( here ) 编写我的第一个项目。当我使用 mvn -Dtest=EchoTest test 运行测试时,我得到一个BUILD FAILURE

nonAcceptedTypeVerification(EchoTest)  Time elapsed: 0.044 sec  <<< ERROR!
java.lang.NullPointerException
at EchoTest.initialize(EchoTest.java:50)

我怎样才能更准确地知道代码中的哪一行触发了 NullPointerExcepion ?换句话说:如何要求 Maven 打印整个回溯?

我尝试了 mvn -e,并在 target 子目录中搜索。

编辑

以下是引发 NullPointerException 的行(在 EchoText.java 中):

@Before
public void initialize() throws InterruptedException
{
system = new EchoActorSystem();
echo_actor = system.actorOf(); <-- line 50
}

重点是 EchoActorSystem 是一个相当复杂的类,actorOf 方法需要大量工作,从 system 调用许多函数。例如它调用 super.actorOf() 然后修复结果的一些属性,等等。我通过添加许多 Sysytem.out.println 来搜索故障行,但我确信这不是正确的工作方式。

最佳答案

mvn test -Dtest=EchoTest -DtrimStackTrace=false 将为您提供完整的堆栈跟踪。

神奇的是-DtrimStackTrace=false

Maven 将默认切断 stacktrace下降到仅出现在您的测试中的行。老实说,这是我第一次注意到这种行为,我觉得这是一个非常奇怪的默认设置(我可以理解控制台输出,但在 surfire-reports XML 报告中也是如此?)

关于Java( maven ): how to know where lies the error (useless backtrace),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35506936/

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