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);
+    }
 }



Reply via email to