commit f5eff04b6762445ea7ade4b3c9970d3892ac0a81
Author: Alex Lehmann <[email protected]>
AuthorDate: Mon Jul 30 22:52:17 2012 +0200
Commit: Mauro Talevi <[email protected]>
CommitDate: Tue Jul 31 01:30:19 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);
+ }
}