lui*_*nal 13 java junit unit-testing maven
可能这在JUnit文档中可能是显而易见的,但似乎无法找到它,也不记得是否有我要描述的解决方案.
当我通过maven(mvn test)运行我的测试用例时,标准错误中根本不会显示意外异常的堆栈跟踪.我得到的只是一条消息,表明测试失败了.
如果我的测试代码抛出一个未经检查的异常,比如一个NPE,我的测试用例输出如下所示:
Tests in error:
testFoo(bar.Foo)
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0
Run Code Online (Sandbox Code Playgroud)
如果我的测试用例声明它可以抛出一个Exception对象,我就像这样包装运行时异常:
@Test
public void testFoo() throws Exception
{
try{ // something funky
throw new NullPointerException();
} catch( RuntimeException ex ) {
throw new Exception(ex);
}
}
Run Code Online (Sandbox Code Playgroud)
然后我们得到这个:
Tests in error:
testFoo(bar.Foo): java.lang.NullPointerException
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0
Run Code Online (Sandbox Code Playgroud)
现在我得到的东西几乎没用.但是,我想看到完整的辣酱玉米饼馅,整个堆栈的痕迹.但是我似乎没有找到一种方法来使用JUnit,除了在catch/try块中克服我的测试用例以将堆栈跟踪打印到标准错误(丑陋):
@Test
public void testFoo() throws Exception
{
try{ // something funky
throw new NullPointerException();
} catch( RuntimeException ex ) {
ex.printStackTrace(); // << this works, but it is ugly.
throw ex;
}
}
Run Code Online (Sandbox Code Playgroud)
我讨厌这样做,因为它污染了(IMO)我的测试用例逻辑; 并且它是手动的,我必须为每个测试用例做这件事(我宁愿把肘部油脂做,以便我在那里和那里得到一个堆栈跟踪,而不是需要堆栈跟踪而没有它.)
有没有办法利用/告诉JUnit,以便打印任何未捕获异常的堆栈跟踪,而不必依赖于在我的测试用例代码*中明确捕获/打印堆栈跟踪?
谢谢.
| 归档时间: |
|
| 查看次数: |
4318 次 |
| 最近记录: |