java - BeforeStories异常

标签 java jbehave

我想向控制台报告异常的堆栈跟踪,所以如果我有:

@BeforeStories
public void init() {
    throw new RuntimeException("omg");
}

我想要:

java.lang.RuntimeException: omg
    at com.mycompany.MyClass.init(MyClass.java:69)

这可能吗?

最佳答案

我不确定我是否理解您想要实现的目标,因为抛出异常应该已经将失败记录到控制台。

但是如果你只想打印出异常消息和跟踪堆栈来控制台,你可以执行下面的行,尽管它非常糟糕,但它应该给你你想要的东西:

@BeforeStories
public void runBeforeAllStories() {
    new RuntimeException("omg").printStackTrace();
}

应用程序将继续运行,但会在控制台中输出以下文本:

java.lang.RuntimeException: omg at jbehave.sample.steps.LifecycleSteps.runBeforeAllStories(LifecycleSteps.java:31) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.jbehave.core.steps.StepCreator$MethodInvoker.invoke(StepCreator.java:805) at org.jbehave.core.steps.StepCreator$BeforeOrAfterStep.perform(StepCreator.java:491) at org.jbehave.core.embedder.PerformableTree$FineSoFar.run(PerformableTree.java:340) at org.jbehave.core.embedder.PerformableTree$PerformableSteps.perform(PerformableTree.java:1072) at org.jbehave.core.embedder.PerformableTree.performBeforeOrAfterStories(PerformableTree.java:427) at org.jbehave.core.embedder.StoryManager.performStories(StoryManager.java:117) at org.jbehave.core.embedder.StoryManager.runStories(StoryManager.java:107) at org.jbehave.core.embedder.StoryManager.runStoriesAsPaths(StoryManager.java:86) at org.jbehave.core.embedder.Embedder.runStoriesAsPaths(Embedder.java:213) at jbehave.sample.common.StoriesTest.run(StoriesTest.java:161) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) at org.junit.runners.ParentRunner.run(ParentRunner.java:309) at org.junit.runner.JUnitCore.run(JUnitCore.java:160) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:117) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:42) at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:262) at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:84)

关于java - BeforeStories异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39413738/

相关文章:

java - Java 程序可以访问自己的源代码吗?

JBehave - 示例表正在执行注释

java - 在 JBehave 中使用多个元过滤器进行过滤

java - 如何在 IntelliJ Idea 中从 Maven(jar 库)解压 JBehave 的 View 资源?

java - 无法运行 JBehave 故事

Java匿名类的使用

java - Java HttpURLConnection 的编码错误

Java在子类中调用函数或使用主类中的对象

java - 让 BufferedImage 使用更少的 RAM?

internet-explorer-8 - Webdriver 在远程 IE 中找不到元素