当运行JUnit测试时出现异常(测试范围之外的意外异常)时,不会打印堆栈跟踪。只有Exception消息。例如,我正在使用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块后才发现它是NullPointerException,然后直到我添加代码才能手动打印捕获中的所有StackTraceElements,我发现它在哪里!
在测试期间发生异常时,是否可以打印整个堆栈跟踪?
我正在使用Maven和IntelliJ IDEA。我不确定这是否是我必须在其中任何一个中配置的东西。我发现this somewhat related answer但是1)涉及构建服务器上的Ant 2)我不知道如果它适用于我我将不得不放置该配置,因为答案中没有提到。
请注意:我不是要求帮助解决示例中的问题。我只想知道如何让JUnit提供有关此类问题的更多信息,以便我可以自己进一步调试。