gpt4 book ai didi

java - 如何显示使用 JUnit 运行的 Spring Test MVC 测试的完整堆栈跟踪

转载 作者:行者123 更新时间:2023-11-30 09:02:53 24 4
gpt4 key购买 nike

如果在运行 JUnit 测试时发生异常(测试范围之外的意外异常),则不会打印堆栈跟踪。只有异常消息是。例如,我正在使用 JUnit 将单元测试添加到现有的 Spring MVC 项目中。我有一个像这样的空测试:

@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration("file:src/main/webapp/WEB-INF/my-servlet.xml")
public class UserAccessTest {

@Autowired
private WebApplicationContext webApplicationContext;

@Test
public void test01() {}
}

但它失败并显示消息:

Tests in error: 
test01(com.myproject.UserAccessTest): Failed to load ApplicationContext

但是,它不会打印整个堆栈跟踪,包括根本原因等。发生这种情况的另一个示例是当我在使用 Mockito 时忘记模拟某些对象时发生 NullPointerException。这种情况下,它甚至不给消息,直到我在测试中添加try-catch block 后,我才发现它是一个NullPointerException,然后直到我添加代码手动打印我发现它所在位置的所有 StackTraceElements!

是否可以在测试过程中出现异常时打印整个堆栈跟踪?

我正在使用 Maven 和 IntelliJ IDEA。我不确定这是否是我必须在其中任何一个中配置的东西。我找到了 this somewhat related answer但是 1) 在构建服务器上涉及 Ant 和 2) 我不知道如果该配置适用于我,我必须把它放在哪里,因为答案中没有提到。

请注意:我并不是在寻求帮助来解决示例中的问题。我只想知道如何让 JUnit 提供有关此类问题的更多信息,以便我自己进一步调试它。

最佳答案

有一些 surefile 插件设置(例如 maven-surefire-plugin useFile 参数设置为 false)控制这个,引用 this

关于java - 如何显示使用 JUnit 运行的 Spring Test MVC 测试的完整堆栈跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25858224/

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