commit 3a938a32bffaddf055d418f791d69d06a91dc820 Author: Alex Lehmann <alexl...@gmail.com> AuthorDate: Mon Jul 30 22:52:17 2012 +0200 Commit: Alex Lehmann <alexl...@gmail.com> CommitDate: Mon Jul 30 22:52:17 2012 +0200
JBEHAVE-806: Jbehave doesn't reformat stack traces on Windows added cr/lf conversion to StackTraceFormatter, added unit test for an Exception diff --git a/jbehave-core/src/main/java/org/jbehave/core/reporters/StackTraceFormatter.java b/jbehave-core/src/main/java/org/jbehave/core/reporters/StackTraceFormatter.java index 99a1304..f54fa5d 100644 --- a/jbehave-core/src/main/java/org/jbehave/core/reporters/StackTraceFormatter.java +++ b/jbehave-core/src/main/java/org/jbehave/core/reporters/StackTraceFormatter.java @@ -20,7 +20,7 @@ public class StackTraceFormatter { } ByteArrayOutputStream out = new ByteArrayOutputStream(); cause.printStackTrace(new PrintStream(out)); - return stackTrace(out.toString()); + return stackTrace(out.toString().replaceAll("\r","")); } protected String stackTrace(String stackTrace) { diff --git a/jbehave-core/src/test/java/org/jbehave/core/reporters/StackTraceFormatterBehaviour.java b/jbehave-core/src/test/java/org/jbehave/core/reporters/StackTraceFormatterBehaviour.java index d7f7845..943f872 100644 --- a/jbehave-core/src/test/java/org/jbehave/core/reporters/StackTraceFormatterBehaviour.java +++ b/jbehave-core/src/test/java/org/jbehave/core/reporters/StackTraceFormatterBehaviour.java @@ -91,4 +91,18 @@ public class StackTraceFormatterBehaviour { "\tat org.jbehave.core.embedder.StoryRunner$FineSoFar.run(StoryRunner.java:261)", formatter.stackTrace(start)); } + @Test + public void exceptionShouldBeCompressible() throws IOException { + // Given a compressing formatter + StackTraceFormatter formatter = new StackTraceFormatter(true); + + // When I format an Exception + String trace=formatter.stackTrace(new Exception("some cause")); + + // Then it looks like + assertEquals("java.lang.Exception: some cause\n" + + "\tat org.jbehave.core.reporters.StackTraceFormatterBehaviour.exceptionShouldBeCompressible(StackTraceFormatterBehaviour.java:100)\n" + + "\t(reflection-invoke)\n" + + "\tat org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)", trace); + } }