maven-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From krosenv...@apache.org
Subject git commit: o Revised compact stacktrce format again.
Date Thu, 20 Dec 2012 14:19:00 GMT
Updated Branches:
  refs/heads/master 71f44f611 -> 93beca951


o Revised compact stacktrce format again.

Colon rules ;)


Project: http://git-wip-us.apache.org/repos/asf/maven-surefire/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-surefire/commit/93beca95
Tree: http://git-wip-us.apache.org/repos/asf/maven-surefire/tree/93beca95
Diff: http://git-wip-us.apache.org/repos/asf/maven-surefire/diff/93beca95

Branch: refs/heads/master
Commit: 93beca951ced6946295fba350af703f667c36f5f
Parents: 71f44f6
Author: Kristian Rosenvold <krosenvold@apache.org>
Authored: Thu Dec 20 15:18:34 2012 +0100
Committer: Kristian Rosenvold <krosenvold@apache.org>
Committed: Thu Dec 20 15:18:34 2012 +0100

----------------------------------------------------------------------
 .../src/site/markdown/newerrorsummary.md           |   48 +++++----------
 .../surefire/report/SmartStackTraceParser.java     |   42 +++++++++---
 .../surefire/report/SmartStackTraceParserTest.java |   17 ++---
 3 files changed, 53 insertions(+), 54 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/93beca95/maven-surefire-plugin/src/site/markdown/newerrorsummary.md
----------------------------------------------------------------------
diff --git a/maven-surefire-plugin/src/site/markdown/newerrorsummary.md b/maven-surefire-plugin/src/site/markdown/newerrorsummary.md
index f33a2d6..98491ea 100644
--- a/maven-surefire-plugin/src/site/markdown/newerrorsummary.md
+++ b/maven-surefire-plugin/src/site/markdown/newerrorsummary.md
@@ -8,38 +8,20 @@ report of the run or the files on disk.
 ### Example output:
 
     Failed tests:
-      Test1#assertion1(59) Bending maths expected:<[123]> but was:<[312]>
-      Test1#assertion2(64) True is false
+      Test1.assertion1:59 Bending maths expected:<[123]> but was:<[312]>
+      Test1.assertion2:64 True is false
 
     Tests in error:
-      Test1#nullPointerInLibrary(38) >> NullPointerException
-      Test1#failInNestedLibInMethod(54).nestedLibFailure(72) >> NullPointerException
-      Test1#failInLibInMethod(48) >> NullPointerException
-      Test1#failInMethod(43).innerFailure(68) NullPointerException Fail here
-      Test2#test6281(33) RuntimeException FailHere
-
-The format of the report is quite "packed", so some explanation is required, there are three
different formats:
-
-
-### Format 1, assertion failure.
-#### Class#method(line number)...methodN(lineN) "Assertion failure message"
-
-    Test1#assertion2(64) True is false
-    Test1#assertion1(59) Bending maths expected:<[123]> but was:<[312]>
-
-### Format 2, Exception in test.
-#### Class#method(line number)...methodN(lineN) Exception "Message"
-In this case the exception was actually thrown on the line in question.
-
-    Test1#failInMethod(43).innerFailure(68) NullPointerException Fail here
-    Test2#test6281(33) RuntimeException FailHere
-
-### Format 3: Exception in code called by test.
-#### Same format as 2 but >> added before exception
-In this case the exception is thrown inside some code that was called from this line of the
-test. We do not show where the actual exception happened, only which line(s) of the test
-that were involved in the call.
-
-    Test1#failInLibInMethod(48) >> NullPointerException
-    Test1#failInNestedLibInMethod(54).nestedLibFailure(72) >> NullPointerException
-
+      Test1.nullPointerInLibrary:38 » NullPointer
+      Test1.failInMethod:43->innerFailure:68 NullPointer Fail here
+      Test1.failInLibInMethod:48 » NullPointer
+      Test1.failInNestedLibInMethod:54->nestedLibFailure:72 » NullPointer
+      Test2.test6281:33 Runtime FailHere
+
+The main rules of the format are:
+ * Assertion failures only show the message
+ * Exception/Error is stripped from the Exception name to save space.
+ * The exception message is trimmed to an approximate 80 chars.
+ * The » symbol means that the exception happened below the method shown (in library code
called by test)
+ * Methods in superclasses are normally shown as SuperClassName.methodName
+ * If the first method in the stacktrace is in a a superclass it will be show as this: TestClass>Superclass.method

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/93beca95/surefire-providers/common-java5/src/main/java/org/apache/maven/surefire/report/SmartStackTraceParser.java
----------------------------------------------------------------------
diff --git a/surefire-providers/common-java5/src/main/java/org/apache/maven/surefire/report/SmartStackTraceParser.java
b/surefire-providers/common-java5/src/main/java/org/apache/maven/surefire/report/SmartStackTraceParser.java
index 74b5c71..ebdfa40 100644
--- a/surefire-providers/common-java5/src/main/java/org/apache/maven/surefire/report/SmartStackTraceParser.java
+++ b/surefire-providers/common-java5/src/main/java/org/apache/maven/surefire/report/SmartStackTraceParser.java
@@ -22,6 +22,7 @@ package org.apache.maven.surefire.report;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import org.apache.maven.shared.utils.StringUtils;
 
 /**
  * @author Kristian Rosenvold
@@ -87,23 +88,28 @@ public class SmartStackTraceParser
             if ( i == 0 )
             {
                 result.append( simpleName );
-                result.append( "#" );
+                if ( !stackTraceElement.getClassName().equals( testClassName ) )
+                {
+                    result.append( ">" );
+                }
+                else
+                {
+                    result.append( "." );
+                }
+
             }
             if ( !stackTraceElement.getClassName().equals( testClassName ) )
             {
-                if ( i > 0 )
-                {
-                    result.append( "<" );
-                }
                 result.append( getSimpleName( stackTraceElement.getClassName() ) ); // Add
the name of the superclas
-                result.append( "#" );
+                result.append( "." );
             }
-            result.append( stackTraceElement.getMethodName() ).append( "(" ).append(
-                stackTraceElement.getLineNumber() ).append( ")" );
-            result.append( "." );
+            result.append( stackTraceElement.getMethodName() ).append( ":" ).append(
+                stackTraceElement.getLineNumber() );
+            result.append( "->" );
         }
 
         result.deleteCharAt( result.length() - 1 );
+        result.deleteCharAt( result.length() - 1 );
 
         if ( throwable.getTarget() instanceof AssertionError )
         {
@@ -112,13 +118,27 @@ public class SmartStackTraceParser
         }
         else
         {
-            result.append( rootIsInclass() ? " " : " >> " );
-            result.append( throwable.getTarget().getClass().getSimpleName() );
+            result.append( rootIsInclass() ? " " : " » " );
+            result.append( getMinimalThrowableMiniMessage( throwable.getTarget() ) );
             result.append( getTruncatedMessage( 77 - result.length() ) );
         }
         return result.toString();
     }
 
+    private String getMinimalThrowableMiniMessage( Throwable throwable )
+    {
+        String name = throwable.getClass().getSimpleName();
+        if ( name.endsWith( "Exception" ) )
+        {
+            return StringUtils.chompLast( name, "Exception" );
+        }
+        if ( name.endsWith( "Error" ) )
+        {
+            return StringUtils.chompLast( name, "Error" );
+        }
+        return name;
+    }
+
     private String getTruncatedMessage( int i )
     {
         if ( i < 0 )

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/93beca95/surefire-providers/common-java5/src/test/java/org/apache/maven/surefire/report/SmartStackTraceParserTest.java
----------------------------------------------------------------------
diff --git a/surefire-providers/common-java5/src/test/java/org/apache/maven/surefire/report/SmartStackTraceParserTest.java
b/surefire-providers/common-java5/src/test/java/org/apache/maven/surefire/report/SmartStackTraceParserTest.java
index 9affc79..b8c6c0e 100644
--- a/surefire-providers/common-java5/src/test/java/org/apache/maven/surefire/report/SmartStackTraceParserTest.java
+++ b/surefire-providers/common-java5/src/test/java/org/apache/maven/surefire/report/SmartStackTraceParserTest.java
@@ -38,9 +38,10 @@ public class SmartStackTraceParserTest
         {
             SmartStackTraceParser smartStackTraceParser = new SmartStackTraceParser( ATestClass.class,
e );
             String res = smartStackTraceParser.getString();
-            Assert.assertTrue( "ATestClass#failInAssert(30) X is not Z".equals( res ) );
+            assertEquals( "ATestClass.failInAssert:30 X is not Z", res );
 
         }
+
     }
 
     public void testNestedFailure()
@@ -55,8 +56,7 @@ public class SmartStackTraceParserTest
         {
             SmartStackTraceParser smartStackTraceParser = new SmartStackTraceParser( ATestClass.class,
e );
             String res = smartStackTraceParser.getString();
-            Assert.assertTrue( "ATestClass#nestedFailInAssert(35).failInAssert(30) X is not
Z".equals( res ) );
-
+            assertEquals( "ATestClass.nestedFailInAssert:35->failInAssert:30 X is not
Z", res );
         }
     }
 
@@ -73,7 +73,7 @@ public class SmartStackTraceParserTest
         {
             SmartStackTraceParser smartStackTraceParser = new SmartStackTraceParser( ATestClass.class,
e );
             String res = smartStackTraceParser.getString();
-            Assert.assertTrue( "ATestClass#nestedNpe(45).npe(40) NullPointerException It
was null".equals( res ) );
+            assertEquals( "ATestClass.nestedNpe:45->npe:40 NullPointer It was null", res
);
 
         }
     }
@@ -91,8 +91,7 @@ public class SmartStackTraceParserTest
         {
             SmartStackTraceParser smartStackTraceParser = new SmartStackTraceParser( ATestClass.class,
e );
             String res = smartStackTraceParser.getString();
-            Assert.assertTrue(
-                "ATestClass#nestedNpeOutsideTest(55).npeOutsideTest(50) >> NullPointerException".equals(
res ) );
+            assertEquals( "ATestClass.nestedNpeOutsideTest:55->npeOutsideTest:50 » NullPointer",
res );
 
         }
     }
@@ -109,8 +108,7 @@ public class SmartStackTraceParserTest
         {
             SmartStackTraceParser smartStackTraceParser = new SmartStackTraceParser( ATestClass.class,
e );
             String res = smartStackTraceParser.getString();
-            Assert.assertTrue(
-                "ATestClass#aLongTestErrorMessage(60) RuntimeException This message will
be tru...".equals( res ) );
+            assertEquals( "ATestClass.aLongTestErrorMessage:60 Runtime This message will
be truncated, so...", res );
 
         }
     }
@@ -127,8 +125,7 @@ public class SmartStackTraceParserTest
         {
             SmartStackTraceParser smartStackTraceParser = new SmartStackTraceParser( ASubClass.class,
e );
             String res = smartStackTraceParser.getString();
-            Assert.assertTrue( "ASubClass#ABaseClass#npe(27) >> NullPointerException
It was null".equals( res ) );
-
+            assertEquals( "ASubClass>ABaseClass.npe:27 » NullPointer It was null", res
);
         }
     }
 


Mime
View raw message