Author: brett
Date: Mon May 1 01:10:38 2006
New Revision: 398546
URL: http://svn.apache.org/viewcvs?rev=398546&view=rev
Log:
[MSUREFIRE-87] trim stack traces back to just the test class by default
Added:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/PojoStackTraceWriter.java
(with props)
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/StackTraceWriter.java
(with props)
maven/surefire/trunk/surefire-providers/surefire-junit/src/main/java/org/apache/maven/surefire/junit/JUnitStackTraceWriter.java
(with props)
maven/surefire/trunk/surefire-providers/surefire-junit/src/main/java/org/apache/maven/surefire/junit/TestListenerInvocationHandler.java
(contents, props changed)
- copied, changed from r398530,
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/testset/TestListenerInvocationHandler.java
maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGStackTraceWriter.java
(with props)
Removed:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/testset/TestListenerInvocationHandler.java
Modified:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/AbstractConsoleReporter.java
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/AbstractFileReporter.java
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/AbstractReporter.java
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/AbstractTextReporter.java
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/BriefConsoleReporter.java
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/BriefFileReporter.java
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/ConsoleReporter.java
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/DetailedConsoleReporter.java
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/FileReporter.java
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/ForkingConsoleReporter.java
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/ReportEntry.java
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/XMLReporter.java
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/testset/PojoTestSet.java
maven/surefire/trunk/surefire-api/src/test/java/org/apache/maven/surefire/TestReport.java
maven/surefire/trunk/surefire-api/src/test/java/org/apache/maven/surefire/report/XMLReporterTest.java
maven/surefire/trunk/surefire-providers/surefire-junit/src/main/java/org/apache/maven/surefire/junit/JUnitTestSet.java
maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGReporter.java
Modified:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/AbstractConsoleReporter.java
URL:
http://svn.apache.org/viewcvs/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/AbstractConsoleReporter.java?rev=398546&r1=398545&r2=398546&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/AbstractConsoleReporter.java
(original)
+++
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/AbstractConsoleReporter.java
Mon May 1 01:10:38 2006
@@ -30,11 +30,11 @@
{
protected static final int BUFFER_SIZE = 4096;
- protected AbstractConsoleReporter( String format )
+ protected AbstractConsoleReporter( String format, Boolean trimStackTrace )
{
// TODO: use logger
- super( new PrintWriter( new OutputStreamWriter( new
BufferedOutputStream( System.out, BUFFER_SIZE ) ) ),
- format );
+ super( new PrintWriter( new OutputStreamWriter( new
BufferedOutputStream( System.out, BUFFER_SIZE ) ) ), format,
+ trimStackTrace );
}
public void testSetStarting( ReportEntry report )
@@ -80,7 +80,7 @@
writer.println( report.getSource().getClass().getName() );
writer.println( report.getName() );
writer.println( report.getMessage() );
- writer.println( report.getThrowable().getMessage() );
+ writer.println( getStackTrace( report ) );
writer.flush();
}
}
Modified:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/AbstractFileReporter.java
URL:
http://svn.apache.org/viewcvs/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/AbstractFileReporter.java?rev=398546&r1=398545&r2=398546&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/AbstractFileReporter.java
(original)
+++
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/AbstractFileReporter.java
Mon May 1 01:10:38 2006
@@ -31,9 +31,9 @@
{
private File reportsDirectory;
- protected AbstractFileReporter( File reportsDirectory, String format )
+ protected AbstractFileReporter( File reportsDirectory, String format,
Boolean trimStackTrace )
{
- super( format );
+ super( format, trimStackTrace );
this.reportsDirectory = reportsDirectory;
}
Modified:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/AbstractReporter.java
URL:
http://svn.apache.org/viewcvs/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/AbstractReporter.java?rev=398546&r1=398545&r2=398546&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/AbstractReporter.java
(original)
+++
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/AbstractReporter.java
Mon May 1 01:10:38 2006
@@ -16,8 +16,6 @@
* limitations under the License.
*/
-import java.io.PrintWriter;
-import java.io.StringWriter;
import java.text.NumberFormat;
import java.util.Locale;
@@ -48,10 +46,18 @@
protected int skipped;
+ private boolean trimStackTrace;
+
// ----------------------------------------------------------------------
// Report interface
// ----------------------------------------------------------------------
+
+ protected AbstractReporter( Boolean trimStackTrace )
+ {
+ this.trimStackTrace = trimStackTrace.booleanValue();
+ }
+
public void writeFooter( String footer )
{
writeMessage( footer );
@@ -184,14 +190,9 @@
* @param report ReportEntry object.
* @return stacktrace as string.
*/
- protected static String getStackTrace( ReportEntry report )
+ protected String getStackTrace( ReportEntry report )
{
- StringWriter writer = new StringWriter();
-
- report.getThrowable().printStackTrace( new PrintWriter( writer ) );
-
- writer.flush();
-
- return writer.toString();
+ return trimStackTrace ?
report.getStackTraceWriter().writeTrimmedTraceToString()
+ : report.getStackTraceWriter().writeTraceToString();
}
}
Modified:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/AbstractTextReporter.java
URL:
http://svn.apache.org/viewcvs/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/AbstractTextReporter.java?rev=398546&r1=398545&r2=398546&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/AbstractTextReporter.java
(original)
+++
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/AbstractTextReporter.java
Mon May 1 01:10:38 2006
@@ -41,13 +41,17 @@
private List testResults;
- protected AbstractTextReporter( String format )
+ protected AbstractTextReporter( String format, Boolean trimStackTrace )
{
+ super( trimStackTrace );
+
this.format = format;
}
- protected AbstractTextReporter( PrintWriter writer, String format )
+ protected AbstractTextReporter( PrintWriter writer, String format, Boolean
trimStackTrace )
{
+ super( trimStackTrace );
+
this.writer = writer;
this.format = format;
Modified:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/BriefConsoleReporter.java
URL:
http://svn.apache.org/viewcvs/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/BriefConsoleReporter.java?rev=398546&r1=398545&r2=398546&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/BriefConsoleReporter.java
(original)
+++
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/BriefConsoleReporter.java
Mon May 1 01:10:38 2006
@@ -26,8 +26,8 @@
public class BriefConsoleReporter
extends AbstractConsoleReporter
{
- public BriefConsoleReporter()
+ public BriefConsoleReporter( Boolean trimStackTrace )
{
- super( BRIEF );
+ super( BRIEF, trimStackTrace );
}
}
Modified:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/BriefFileReporter.java
URL:
http://svn.apache.org/viewcvs/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/BriefFileReporter.java?rev=398546&r1=398545&r2=398546&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/BriefFileReporter.java
(original)
+++
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/BriefFileReporter.java
Mon May 1 01:10:38 2006
@@ -27,8 +27,8 @@
public class BriefFileReporter
extends AbstractFileReporter
{
- public BriefFileReporter( File reportsDirectory )
+ public BriefFileReporter( File reportsDirectory, Boolean trimStackTrace )
{
- super( reportsDirectory, BRIEF );
+ super( reportsDirectory, BRIEF, trimStackTrace );
}
}
Modified:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/ConsoleReporter.java
URL:
http://svn.apache.org/viewcvs/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/ConsoleReporter.java?rev=398546&r1=398545&r2=398546&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/ConsoleReporter.java
(original)
+++
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/ConsoleReporter.java
Mon May 1 01:10:38 2006
@@ -25,8 +25,8 @@
public class ConsoleReporter
extends AbstractConsoleReporter
{
- public ConsoleReporter()
+ public ConsoleReporter( Boolean trimStackTrace )
{
- super( SUMMARY );
+ super( SUMMARY, trimStackTrace );
}
}
Modified:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/DetailedConsoleReporter.java
URL:
http://svn.apache.org/viewcvs/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/DetailedConsoleReporter.java?rev=398546&r1=398545&r2=398546&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/DetailedConsoleReporter.java
(original)
+++
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/DetailedConsoleReporter.java
Mon May 1 01:10:38 2006
@@ -25,8 +25,8 @@
public class DetailedConsoleReporter
extends AbstractConsoleReporter
{
- public DetailedConsoleReporter()
+ public DetailedConsoleReporter( Boolean trimStackTrace )
{
- super( PLAIN );
+ super( PLAIN, trimStackTrace );
}
}
Modified:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/FileReporter.java
URL:
http://svn.apache.org/viewcvs/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/FileReporter.java?rev=398546&r1=398545&r2=398546&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/FileReporter.java
(original)
+++
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/FileReporter.java
Mon May 1 01:10:38 2006
@@ -27,8 +27,8 @@
public class FileReporter
extends AbstractFileReporter
{
- public FileReporter( File reportsDirectory )
+ public FileReporter( File reportsDirectory, Boolean trimStackTrace )
{
- super( reportsDirectory, PLAIN );
+ super( reportsDirectory, PLAIN, trimStackTrace );
}
}
Modified:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/ForkingConsoleReporter.java
URL:
http://svn.apache.org/viewcvs/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/ForkingConsoleReporter.java?rev=398546&r1=398545&r2=398546&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/ForkingConsoleReporter.java
(original)
+++
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/ForkingConsoleReporter.java
Mon May 1 01:10:38 2006
@@ -25,6 +25,11 @@
public static final String FORKING_PREFIX_FOOTER = "@FL";
+ public ForkingConsoleReporter( Boolean trimStackTrace )
+ {
+ super( trimStackTrace );
+ }
+
public void writeHeading( String message )
{
writer.print( FORKING_PREFIX_HEADING );
Added:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/PojoStackTraceWriter.java
URL:
http://svn.apache.org/viewcvs/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/PojoStackTraceWriter.java?rev=398546&view=auto
==============================================================================
---
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/PojoStackTraceWriter.java
(added)
+++
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/PojoStackTraceWriter.java
Mon May 1 01:10:38 2006
@@ -0,0 +1,83 @@
+/*
+ * Copyright 2005-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.maven.surefire.report;
+
+import org.codehaus.plexus.util.StringUtils;
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+
+/**
+ * Write the trace out for a POJO test.
+ *
+ * @author <a href="mailto:[EMAIL PROTECTED]">Brett Porter</a>
+ */
+public class PojoStackTraceWriter
+ implements StackTraceWriter
+{
+ private final Throwable t;
+
+ protected final String testClass;
+
+ protected final String testMethod;
+
+ public PojoStackTraceWriter( String testClass, String testMethod,
Throwable t )
+ {
+ this.testClass = testClass;
+ this.testMethod = testMethod;
+ this.t = t;
+ }
+
+ public String writeTraceToString()
+ {
+ StringWriter w = new StringWriter();
+ t.printStackTrace( new PrintWriter( w ) );
+ w.flush();
+ return w.toString();
+ }
+
+ public String writeTrimmedTraceToString()
+ {
+ String text = writeTraceToString();
+
+ String marker = "at " + testClass + "." + testMethod;
+
+ String[] lines = StringUtils.split( text, "\n" );
+ int lastLine = lines.length - 1;
+ // skip first
+ for ( int i = 1; i < lines.length; i++ )
+ {
+ if ( lines[i].trim().startsWith( marker ) )
+ {
+ lastLine = i;
+ }
+ }
+
+ StringBuffer trace = new StringBuffer();
+ for ( int i = 0; i <= lastLine; i++ )
+ {
+ trace.append( lines[i] );
+ trace.append( "\n" );
+ }
+ return trace.toString();
+ }
+
+ public Throwable getThrowable()
+ {
+ return t;
+ }
+}
Propchange:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/PojoStackTraceWriter.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/PojoStackTraceWriter.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/ReportEntry.java
URL:
http://svn.apache.org/viewcvs/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/ReportEntry.java?rev=398546&r1=398545&r2=398546&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/ReportEntry.java
(original)
+++
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/ReportEntry.java
Mon May 1 01:10:38 2006
@@ -26,7 +26,7 @@
private String message;
- private Throwable throwable;
+ private StackTraceWriter stackTraceWriter;
public ReportEntry( Object source, String name, String message )
{
@@ -38,12 +38,12 @@
this( source, name, group, message, null );
}
- public ReportEntry( Object source, String name, String message, Throwable
throwable )
+ public ReportEntry( Object source, String name, String message,
StackTraceWriter stackTraceWriter )
{
- this( source, name, null, message, throwable );
+ this( source, name, null, message, stackTraceWriter );
}
- public ReportEntry( Object source, String name, String group, String
message, Throwable throwable )
+ public ReportEntry( Object source, String name, String group, String
message, StackTraceWriter stackTraceWriter )
{
if ( source == null )
{
@@ -66,7 +66,7 @@
this.message = message;
- this.throwable = throwable;
+ this.stackTraceWriter = stackTraceWriter;
}
public Object getSource()
@@ -89,9 +89,9 @@
return message;
}
- public Throwable getThrowable()
+ public StackTraceWriter getStackTraceWriter()
{
- return throwable;
+ return stackTraceWriter;
}
}
Added:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/StackTraceWriter.java
URL:
http://svn.apache.org/viewcvs/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/StackTraceWriter.java?rev=398546&view=auto
==============================================================================
---
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/StackTraceWriter.java
(added)
+++
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/StackTraceWriter.java
Mon May 1 01:10:38 2006
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2005-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.maven.surefire.report;
+
+/**
+ * Ability to write a stack trace, filtered to omit locations inside Surefire
and Maven.
+ *
+ * @author <a href="mailto:[EMAIL PROTECTED]">Brett Porter</a>
+ */
+public interface StackTraceWriter
+{
+ /**
+ * Write the throwable to a string, without trimming.
+ *
+ * @return the trace
+ */
+ String writeTraceToString();
+
+ /**
+ * Write the throwable to a string, trimming extra locations.
+ *
+ * @return the trace
+ */
+ String writeTrimmedTraceToString();
+
+ /**
+ * Retrieve the throwable for this writer.
+ *
+ * @return the throwable
+ */
+ Throwable getThrowable();
+}
Propchange:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/StackTraceWriter.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/StackTraceWriter.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/XMLReporter.java
URL:
http://svn.apache.org/viewcvs/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/XMLReporter.java?rev=398546&r1=398545&r2=398546&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/XMLReporter.java
(original)
+++
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/XMLReporter.java
Mon May 1 01:10:38 2006
@@ -53,8 +53,10 @@
private List results = Collections.synchronizedList( new ArrayList() );
- public XMLReporter( File reportsDirectory )
+ public XMLReporter( File reportsDirectory, Boolean trimStackTrace )
{
+ super( trimStackTrace );
+
this.reportsDirectory = reportsDirectory;
}
@@ -181,7 +183,7 @@
String stackTrace = getStackTrace( report );
- Throwable t = report.getThrowable();
+ Throwable t = report.getStackTraceWriter().getThrowable();
if ( t != null )
{
Modified:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/testset/PojoTestSet.java
URL:
http://svn.apache.org/viewcvs/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/testset/PojoTestSet.java?rev=398546&r1=398545&r2=398546&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/testset/PojoTestSet.java
(original)
+++
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/testset/PojoTestSet.java
Mon May 1 01:10:38 2006
@@ -17,6 +17,7 @@
*/
import org.apache.maven.surefire.Surefire;
+import org.apache.maven.surefire.report.PojoStackTraceWriter;
import org.apache.maven.surefire.report.ReportEntry;
import org.apache.maven.surefire.report.ReporterManager;
@@ -129,7 +130,9 @@
String stringToPrint = msgFmt.format( stringArgs );
- report = new ReportEntry( testObject, getTestName(
userFriendlyMethodName ), stringToPrint, e );
+ report = new ReportEntry( testObject, getTestName(
userFriendlyMethodName ), stringToPrint,
+ new PojoStackTraceWriter(
testObject.getClass().getName(), method.getName(),
+ e ) );
reportManager.testFailed( report );
@@ -161,7 +164,8 @@
msg = t.toString();
}
- report = new ReportEntry( testObject, getTestName(
userFriendlyMethodName ), msg, t );
+ report = new ReportEntry( testObject, getTestName(
userFriendlyMethodName ), msg, new PojoStackTraceWriter(
+ testObject.getClass().getName(), method.getName(), t ) );
reportManager.testFailed( report );
// Don't return here, because tearDownFixture should be called
even
@@ -176,7 +180,8 @@
msg = t.toString();
}
- report = new ReportEntry( testObject, getTestName(
userFriendlyMethodName ), msg, t );
+ report = new ReportEntry( testObject, getTestName(
userFriendlyMethodName ), msg, new PojoStackTraceWriter(
+ testObject.getClass().getName(), method.getName(), t ) );
reportManager.testFailed( report );
// Don't return here, because tearDownFixture should be called
even
@@ -198,7 +203,9 @@
String stringToPrint = msgFmt.format( stringArgs );
- report = new ReportEntry( testObject, getTestName(
userFriendlyMethodName ), stringToPrint, t );
+ report = new ReportEntry( testObject, getTestName(
userFriendlyMethodName ), stringToPrint,
+ new PojoStackTraceWriter(
testObject.getClass().getName(), method.getName(),
+ t ) );
reportManager.testFailed( report );
@@ -225,7 +232,7 @@
throw new NullPointerException( "testMethodName is null" );
}
- return getTestClass() + "." + testMethodName;
+ return getTestClass().getName() + "." + testMethodName;
}
public void setUpFixture()
Modified:
maven/surefire/trunk/surefire-api/src/test/java/org/apache/maven/surefire/TestReport.java
URL:
http://svn.apache.org/viewcvs/maven/surefire/trunk/surefire-api/src/test/java/org/apache/maven/surefire/TestReport.java?rev=398546&r1=398545&r2=398546&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-api/src/test/java/org/apache/maven/surefire/TestReport.java
(original)
+++
maven/surefire/trunk/surefire-api/src/test/java/org/apache/maven/surefire/TestReport.java
Mon May 1 01:10:38 2006
@@ -26,6 +26,11 @@
public class TestReport
extends AbstractReporter
{
+ public TestReport()
+ {
+ super( Boolean.TRUE );
+ }
+
public void writeMessage( String message )
{
System.out.println( "TestReport::writeMessage -> " + message );
Modified:
maven/surefire/trunk/surefire-api/src/test/java/org/apache/maven/surefire/report/XMLReporterTest.java
URL:
http://svn.apache.org/viewcvs/maven/surefire/trunk/surefire-api/src/test/java/org/apache/maven/surefire/report/XMLReporterTest.java?rev=398546&r1=398545&r2=398546&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-api/src/test/java/org/apache/maven/surefire/report/XMLReporterTest.java
(original)
+++
maven/surefire/trunk/surefire-api/src/test/java/org/apache/maven/surefire/report/XMLReporterTest.java
Mon May 1 01:10:38 2006
@@ -34,9 +34,10 @@
throws Exception
{
super.setUp();
- reporter = new XMLReporter( null );
+ reporter = new XMLReporter( null, Boolean.TRUE );
message = "junit.framework.AssertionFailedError";
- reportEntry = new ReportEntry( this, "XMLReporterTest", message, new
AssertionFailedError() );
+ reportEntry = new ReportEntry( this, "XMLReporterTest", message,
+ new PojoStackTraceWriter( "", "", new
AssertionFailedError() ) );
}
/*
Added:
maven/surefire/trunk/surefire-providers/surefire-junit/src/main/java/org/apache/maven/surefire/junit/JUnitStackTraceWriter.java
URL:
http://svn.apache.org/viewcvs/maven/surefire/trunk/surefire-providers/surefire-junit/src/main/java/org/apache/maven/surefire/junit/JUnitStackTraceWriter.java?rev=398546&view=auto
==============================================================================
---
maven/surefire/trunk/surefire-providers/surefire-junit/src/main/java/org/apache/maven/surefire/junit/JUnitStackTraceWriter.java
(added)
+++
maven/surefire/trunk/surefire-providers/surefire-junit/src/main/java/org/apache/maven/surefire/junit/JUnitStackTraceWriter.java
Mon May 1 01:10:38 2006
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2005-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.maven.surefire.junit;
+
+import org.apache.maven.surefire.report.PojoStackTraceWriter;
+
+/**
+ * Stack trace writer for JUnit tests.
+ *
+ * @author <a href="mailto:[EMAIL PROTECTED]">Brett Porter</a>
+ */
+public class JUnitStackTraceWriter
+ extends PojoStackTraceWriter
+{
+ public JUnitStackTraceWriter( String testClass, String testName, Throwable
throwable )
+ {
+ super( testClass, testName, throwable );
+ }
+}
Propchange:
maven/surefire/trunk/surefire-providers/surefire-junit/src/main/java/org/apache/maven/surefire/junit/JUnitStackTraceWriter.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/surefire/trunk/surefire-providers/surefire-junit/src/main/java/org/apache/maven/surefire/junit/JUnitStackTraceWriter.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified:
maven/surefire/trunk/surefire-providers/surefire-junit/src/main/java/org/apache/maven/surefire/junit/JUnitTestSet.java
URL:
http://svn.apache.org/viewcvs/maven/surefire/trunk/surefire-providers/surefire-junit/src/main/java/org/apache/maven/surefire/junit/JUnitTestSet.java?rev=398546&r1=398545&r2=398546&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-providers/surefire-junit/src/main/java/org/apache/maven/surefire/junit/JUnitTestSet.java
(original)
+++
maven/surefire/trunk/surefire-providers/surefire-junit/src/main/java/org/apache/maven/surefire/junit/JUnitTestSet.java
Mon May 1 01:10:38 2006
@@ -18,7 +18,6 @@
import org.apache.maven.surefire.report.ReporterManager;
import org.apache.maven.surefire.testset.AbstractTestSet;
-import org.apache.maven.surefire.testset.TestListenerInvocationHandler;
import org.apache.maven.surefire.testset.TestSetFailedException;
import java.lang.reflect.Constructor;
Copied:
maven/surefire/trunk/surefire-providers/surefire-junit/src/main/java/org/apache/maven/surefire/junit/TestListenerInvocationHandler.java
(from r398530,
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/testset/TestListenerInvocationHandler.java)
URL:
http://svn.apache.org/viewcvs/maven/surefire/trunk/surefire-providers/surefire-junit/src/main/java/org/apache/maven/surefire/junit/TestListenerInvocationHandler.java?p2=maven/surefire/trunk/surefire-providers/surefire-junit/src/main/java/org/apache/maven/surefire/junit/TestListenerInvocationHandler.java&p1=maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/testset/TestListenerInvocationHandler.java&r1=398530&r2=398546&rev=398546&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/testset/TestListenerInvocationHandler.java
(original)
+++
maven/surefire/trunk/surefire-providers/surefire-junit/src/main/java/org/apache/maven/surefire/junit/TestListenerInvocationHandler.java
Mon May 1 01:10:38 2006
@@ -1,4 +1,4 @@
-package org.apache.maven.surefire.testset;
+package org.apache.maven.surefire.junit;
/*
* Copyright 2001-2006 The Apache Software Foundation.
@@ -20,6 +20,7 @@
import org.apache.maven.surefire.report.ReporterManager;
import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.HashSet;
import java.util.Set;
@@ -40,6 +41,10 @@
private ReporterManager reportManager;
+ private static final Class[] EMPTY_CLASS_ARRAY = new Class[]{};
+
+ private static final String[] EMPTY_STRING_ARRAY = new String[]{};
+
private static class FailedTest
{
private Object testThatFailed;
@@ -150,17 +155,29 @@
// Handler for TestListener.addFailure(Test, Throwable)
private void handleAddError( Object[] args )
+ throws IllegalAccessException, NoSuchMethodException,
InvocationTargetException
{
- ReportEntry report = new ReportEntry( args[0], args[0].toString(),
args[1].toString(), (Throwable) args[1] );
+ ReportEntry report =
+ new ReportEntry( args[0], args[0].toString(), args[1].toString(),
getStackTraceWriter( args ) );
reportManager.testError( report );
failedTestsSet.add( new FailedTest( args[0], Thread.currentThread() )
);
}
+ private JUnitStackTraceWriter getStackTraceWriter( Object[] args )
+ throws NoSuchMethodException, IllegalAccessException,
InvocationTargetException
+ {
+ Method m = args[0].getClass().getMethod( "getName", EMPTY_CLASS_ARRAY
);
+ String testName = (String) m.invoke( args[0], EMPTY_STRING_ARRAY );
+ return new JUnitStackTraceWriter( args[0].getClass().getName(),
testName, (Throwable) args[1] );
+ }
+
private void handleAddFailure( Object[] args )
+ throws IllegalAccessException, NoSuchMethodException,
InvocationTargetException
{
- ReportEntry report = new ReportEntry( args[0], args[0].toString(),
args[1].toString(), (Throwable) args[1] );
+ ReportEntry report =
+ new ReportEntry( args[0], args[0].toString(), args[1].toString(),
getStackTraceWriter( args ) );
reportManager.testFailed( report );
Propchange:
maven/surefire/trunk/surefire-providers/surefire-junit/src/main/java/org/apache/maven/surefire/junit/TestListenerInvocationHandler.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/surefire/trunk/surefire-providers/surefire-junit/src/main/java/org/apache/maven/surefire/junit/TestListenerInvocationHandler.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified:
maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGReporter.java
URL:
http://svn.apache.org/viewcvs/maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGReporter.java?rev=398546&r1=398545&r2=398546&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGReporter.java
(original)
+++
maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGReporter.java
Mon May 1 01:10:38 2006
@@ -77,7 +77,7 @@
String group = groupString( result.getMethod().getGroups(),
result.getTestClass().getName() );
ReportEntry report = new ReportEntry( source,
result.getTestClass().getName() + "#" +
result.getMethod().getMethodName(), group, rawString );
-
+
reportManager.testStarting( report );
}
@@ -91,7 +91,8 @@
{
String rawString = bundle.getString( "executeException" );
- ReportEntry report = new ReportEntry( source, result.getName(),
rawString, result.getThrowable() );
+ ReportEntry report =
+ new ReportEntry( source, result.getName(), rawString, new
TestNGStackTraceWriter( result ) );
reportManager.testFailed( report );
}
@@ -107,7 +108,8 @@
{
String rawString = bundle.getString( "executeException" );
- ReportEntry report = new ReportEntry( source, result.getName(),
rawString, result.getThrowable() );
+ ReportEntry report =
+ new ReportEntry( source, result.getName(), rawString, new
TestNGStackTraceWriter( result ) );
reportManager.testError( report );
}
Added:
maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGStackTraceWriter.java
URL:
http://svn.apache.org/viewcvs/maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGStackTraceWriter.java?rev=398546&view=auto
==============================================================================
---
maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGStackTraceWriter.java
(added)
+++
maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGStackTraceWriter.java
Mon May 1 01:10:38 2006
@@ -0,0 +1,67 @@
+/*
+ * Copyright 2005-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.maven.surefire.testng;
+
+import org.apache.maven.surefire.report.PojoStackTraceWriter;
+import org.codehaus.plexus.util.StringUtils;
+import org.testng.ITestResult;
+
+/**
+ * Write out stack traces for TestNG.
+ *
+ * @author <a href="mailto:[EMAIL PROTECTED]">Brett Porter</a>
+ */
+public class TestNGStackTraceWriter
+ extends PojoStackTraceWriter
+{
+ public TestNGStackTraceWriter( ITestResult result )
+ {
+ super( result.getTestClass().getRealClass().getName(),
result.getMethod().getMethodName(),
+ result.getThrowable() );
+ }
+
+ public String writeTrimmedTraceToString()
+ {
+ String text = writeTraceToString();
+
+ String marker = "at " + testClass + "." + testMethod;
+
+ String[] lines = StringUtils.split( text, "\n" );
+ int lastLine = lines.length - 1;
+ // skip first
+ for ( int i = 1; i < lines.length; i++ )
+ {
+ if ( lines[i].trim().startsWith( marker ) )
+ {
+ lastLine = i;
+ }
+ }
+
+ StringBuffer trace = new StringBuffer();
+ for ( int i = 0; i <= lastLine; i++ )
+ {
+ // if you call assertions from JUnit tests in TestNG, it ends up
at the top of the trace
+ if ( !lines[i].trim().startsWith( "at junit.framework.Assert" ) )
+ {
+ trace.append( lines[i] );
+ trace.append( "\n" );
+ }
+ }
+
+ return trace.toString();
+ }
+}
Propchange:
maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGStackTraceWriter.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGStackTraceWriter.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision