You are viewing a plain text version of this content. The canonical link for it is here.
Posted to surefire-commits@maven.apache.org by br...@apache.org on 2006/03/01 03:25:14 UTC
svn commit: r381872 - in /maven/surefire/branches/surefire-testng:
surefire-booter/src/main/java/org/apache/maven/surefire/
surefire/src/main/java/org/apache/maven/surefire/battery/
surefire/src/main/java/org/apache/maven/surefire/battery/assertion/ su...
Author: brett
Date: Tue Feb 28 18:25:08 2006
New Revision: 381872
URL: http://svn.apache.org/viewcvs?rev=381872&view=rev
Log:
merge r381061:381871 from trunk
Added:
maven/surefire/branches/surefire-testng/surefire-booter/src/main/java/org/apache/maven/surefire/ForkingWriterStreamConsumer.java
- copied unchanged from r381871, maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/ForkingWriterStreamConsumer.java
maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/report/ForkingConsoleReporter.java
- copied unchanged from r381871, maven/surefire/trunk/surefire/src/main/java/org/apache/maven/surefire/report/ForkingConsoleReporter.java
maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/report/ForkingReport.java
- copied unchanged from r381871, maven/surefire/trunk/surefire/src/main/java/org/apache/maven/surefire/report/ForkingReport.java
maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/report/ForkingSummaryConsoleReporter.java
- copied unchanged from r381871, maven/surefire/trunk/surefire/src/main/java/org/apache/maven/surefire/report/ForkingSummaryConsoleReporter.java
Removed:
maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/util/DirectoryScanner.java
maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/util/SelectorUtils.java
maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/util/StringUtils.java
maven/surefire/branches/surefire-testng/surefire/src/main/java/org/codehaus/
Modified:
maven/surefire/branches/surefire-testng/surefire-booter/src/main/java/org/apache/maven/surefire/SurefireBooter.java
maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/AbstractBattery.java
maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/DirectoryBattery.java
maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/JUnitBattery.java
maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/assertion/BatteryAssert.java
maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/assertion/BatteryComparisonFailure.java
maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/report/ConsoleReporter.java
maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/report/SummaryConsoleReporter.java
maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/report/XMLReporter.java
Modified: maven/surefire/branches/surefire-testng/surefire-booter/src/main/java/org/apache/maven/surefire/SurefireBooter.java
URL: http://svn.apache.org/viewcvs/maven/surefire/branches/surefire-testng/surefire-booter/src/main/java/org/apache/maven/surefire/SurefireBooter.java?rev=381872&r1=381871&r2=381872&view=diff
==============================================================================
--- maven/surefire/branches/surefire-testng/surefire-booter/src/main/java/org/apache/maven/surefire/SurefireBooter.java (original)
+++ maven/surefire/branches/surefire-testng/surefire-booter/src/main/java/org/apache/maven/surefire/SurefireBooter.java Tue Feb 28 18:25:08 2006
@@ -16,10 +16,16 @@
* limitations under the License.
*/
+import org.codehaus.plexus.util.StringUtils;
+import org.codehaus.plexus.util.cli.CommandLineException;
+import org.codehaus.plexus.util.cli.CommandLineUtils;
+import org.codehaus.plexus.util.cli.Commandline;
+import org.codehaus.plexus.util.cli.StreamConsumer;
+
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
-import java.io.StringWriter;
+import java.io.OutputStreamWriter;
import java.io.Writer;
import java.lang.reflect.Method;
import java.net.URL;
@@ -31,13 +37,6 @@
import java.util.Map;
import java.util.Properties;
-import org.codehaus.plexus.util.StringUtils;
-import org.codehaus.plexus.util.cli.CommandLineException;
-import org.codehaus.plexus.util.cli.CommandLineUtils;
-import org.codehaus.plexus.util.cli.Commandline;
-import org.codehaus.plexus.util.cli.StreamConsumer;
-import org.codehaus.plexus.util.cli.WriterStreamConsumer;
-
/**
* @author Jason van Zyl
* @author Emmanuel Venisse
@@ -362,7 +361,7 @@
{
getForkOnceArgs();
- return fork();
+ return fork( true );
}
private boolean runTestsForkEach()
@@ -372,13 +371,14 @@
List testClasses = getTestClasses();
- for ( Iterator i = testClasses.iterator(); i.hasNext(); )
+ for ( int i = 0; i < testClasses.size(); i++ )
{
- String testClass = (String) i.next();
+ String testClass = (String) testClasses.get( i );
getForkPerTestArgs( testClass );
- boolean result = fork();
+ // Only show the heading for the first run
+ boolean result = fork( i == 0 );
if ( !result )
{
@@ -389,7 +389,7 @@
return noFailures;
}
- private boolean fork()
+ private boolean fork( boolean showHeading )
throws Exception
{
Commandline cli = new Commandline();
@@ -403,7 +403,7 @@
cli.addArguments( StringUtils.split( argLine, " " ) );
}
- if ( environmentVariables != null)
+ if ( environmentVariables != null )
{
Iterator iter = environmentVariables.keySet().iterator();
@@ -417,18 +417,13 @@
if ( debug )
{
- System.out.println( "Environment: " + key + "=" + value + " added." );
+ System.out.println( "Environment: " + key + "=" + value + " added." );
}
}
}
- if ( workingDirectory != null )
- {
- cli.setWorkingDirectory( workingDirectory.getAbsolutePath() );
- }
-
cli.createArgument().setValue( "-classpath" );
cli.createArgument().setValue( surefireBooterJar + PS + plexusUtilsJar );
@@ -437,16 +432,24 @@
cli.createArgument().setValue( basedir );
+ if ( workingDirectory != null )
+ {
+ //both cli's working directory and system property "user.dir" must have the same value
+ cli.setWorkingDirectory( workingDirectory.getAbsolutePath() );
+
+ cli.createArgument().setValue( workingDirectory.getAbsolutePath() );
+ }
+
if ( debug )
{
System.out.println( Commandline.toString( cli.getCommandline() ) );
}
- Writer stringWriter = new StringWriter();
+ Writer consoleWriter = new OutputStreamWriter( System.out );
- StreamConsumer out = new WriterStreamConsumer( stringWriter );
+ StreamConsumer out = new ForkingWriterStreamConsumer( consoleWriter, showHeading );
- StreamConsumer err = new WriterStreamConsumer( stringWriter );
+ StreamConsumer err = new ForkingWriterStreamConsumer( consoleWriter, showHeading );
int returnCode;
@@ -463,25 +466,6 @@
throw new SurefireBooterForkException( "Error while executing forked tests.", e );
}
- /*
-
- The standard reporting modules should do this work ... jvz
-
- String string = stringWriter.toString();
-
- if ( string != null && string.length() > 0 )
- {
- StringReader sr = new StringReader( string );
-
- BufferedReader br = new BufferedReader( sr );
-
- while ( ( string = br.readLine() ) != null )
- {
- System.out.println( string );
- }
- }
- */
-
if ( returnCode != 0 )
{
return false;
@@ -725,12 +709,24 @@
{
String basedir = args[0];
+ String workingDirectory = null;
+
+ if ( args.length == 2 )
+ {
+ workingDirectory = args[1];
+ }
+
ClassLoader classLoader = createForkingClassLoader( basedir );
Thread.currentThread().setContextClassLoader( classLoader );
setSystemProperties( basedir );
+
+ if ( workingDirectory != null )
+ {
+ System.setProperty( "user.dir", workingDirectory );
+ }
Properties p = getSurefireProperties( basedir );
Modified: maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/AbstractBattery.java
URL: http://svn.apache.org/viewcvs/maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/AbstractBattery.java?rev=381872&r1=381871&r2=381872&view=diff
==============================================================================
--- maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/AbstractBattery.java (original)
+++ maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/AbstractBattery.java Tue Feb 28 18:25:08 2006
@@ -16,10 +16,10 @@
* limitations under the License.
*/
+import org.apache.maven.surefire.Surefire;
import org.apache.maven.surefire.battery.assertion.BatteryAssert;
import org.apache.maven.surefire.report.ReportEntry;
import org.apache.maven.surefire.report.ReporterManager;
-import org.apache.maven.surefire.Surefire;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
Modified: maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/DirectoryBattery.java
URL: http://svn.apache.org/viewcvs/maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/DirectoryBattery.java?rev=381872&r1=381871&r2=381872&view=diff
==============================================================================
--- maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/DirectoryBattery.java (original)
+++ maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/DirectoryBattery.java Tue Feb 28 18:25:08 2006
@@ -16,12 +16,12 @@
* limitations under the License.
*/
+import org.codehaus.plexus.util.DirectoryScanner;
+import org.codehaus.plexus.util.StringUtils;
+
import java.io.File;
import java.util.ArrayList;
import java.util.List;
-
-import org.apache.maven.surefire.util.DirectoryScanner;
-import org.apache.maven.surefire.util.StringUtils;
public class DirectoryBattery extends AbstractBattery {
Modified: maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/JUnitBattery.java
URL: http://svn.apache.org/viewcvs/maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/JUnitBattery.java?rev=381872&r1=381871&r2=381872&view=diff
==============================================================================
--- maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/JUnitBattery.java (original)
+++ maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/JUnitBattery.java Tue Feb 28 18:25:08 2006
@@ -21,8 +21,8 @@
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
-import java.lang.reflect.Proxy;
import java.lang.reflect.Modifier;
+import java.lang.reflect.Proxy;
public class JUnitBattery
extends AbstractBattery
Modified: maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/assertion/BatteryAssert.java
URL: http://svn.apache.org/viewcvs/maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/assertion/BatteryAssert.java?rev=381872&r1=381871&r2=381872&view=diff
==============================================================================
--- maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/assertion/BatteryAssert.java (original)
+++ maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/assertion/BatteryAssert.java Tue Feb 28 18:25:08 2006
@@ -16,9 +16,8 @@
* limitations under the License.
*/
-import org.apache.maven.surefire.Surefire;
-
import junit.framework.TestCase;
+import org.apache.maven.surefire.Surefire;
public class BatteryAssert extends TestCase
{
Modified: maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/assertion/BatteryComparisonFailure.java
URL: http://svn.apache.org/viewcvs/maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/assertion/BatteryComparisonFailure.java?rev=381872&r1=381871&r2=381872&view=diff
==============================================================================
--- maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/assertion/BatteryComparisonFailure.java (original)
+++ maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/battery/assertion/BatteryComparisonFailure.java Tue Feb 28 18:25:08 2006
@@ -16,9 +16,6 @@
* limitations under the License.
*/
-import org.apache.maven.surefire.battery.assertion.BatteryAssert;
-import org.apache.maven.surefire.battery.assertion.BatteryAssertionFailedError;
-
/**
* Thrown when an assertion equals for Strings failed.
*
Modified: maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/report/ConsoleReporter.java
URL: http://svn.apache.org/viewcvs/maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/report/ConsoleReporter.java?rev=381872&r1=381871&r2=381872&view=diff
==============================================================================
--- maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/report/ConsoleReporter.java (original)
+++ maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/report/ConsoleReporter.java Tue Feb 28 18:25:08 2006
@@ -23,11 +23,11 @@
public class ConsoleReporter
extends AbstractReporter
{
- private static final int BUFFER_SIZE = 4096;
+ protected static final int BUFFER_SIZE = 4096;
- private PrintWriter writer;
+ protected PrintWriter writer;
- private long batteryStartTime;
+ protected long batteryStartTime;
public ConsoleReporter()
{
@@ -38,43 +38,47 @@
//
// ----------------------------------------------------------------------
- public void writeMessage( String message )
+ public void println( String message )
{
writer.println( message );
writer.flush();
}
+ public void print( String message )
+ {
+ writer.print( message );
+
+ writer.flush();
+ }
+
// ----------------------------------------------------------------------
// Run
// ----------------------------------------------------------------------
public void runStarting( int testCount )
{
- writer.println();
- writer.println( "-------------------------------------------------------" );
- writer.println( " T E S T S" );
- writer.println( "-------------------------------------------------------" );
- writer.flush();
+ println( "" );
+ println( "-------------------------------------------------------" );
+ println( " T E S T S" );
+ println( "-------------------------------------------------------" );
}
public void runAborted( ReportEntry report )
{
- writer.println( "RUN ABORTED" );
- writer.println( report.getSource().getClass().getName() );
- writer.println( report.getName() );
- writer.println( report.getMessage() );
- writer.println( report.getThrowable().getMessage() );
- writer.flush();
+ println( "RUN ABORTED" );
+ println( report.getSource().getClass().getName() );
+ println( report.getName() );
+ println( report.getMessage() );
+ println( report.getThrowable().getMessage() );
}
public void batteryAborted( ReportEntry report )
{
- writer.println( "BATTERY ABORTED" );
- writer.println( report.getSource().getClass().getName() );
- writer.println( report.getName() );
- writer.println( report.getMessage() );
- writer.println( report.getThrowable().getMessage() );
- writer.flush();
+ println( "BATTERY ABORTED" );
+ println( report.getSource().getClass().getName() );
+ println( report.getName() );
+ println( report.getMessage() );
+ println( report.getThrowable().getMessage() );
}
// ----------------------------------------------------------------------
@@ -86,14 +90,14 @@
{
batteryStartTime = System.currentTimeMillis();
- writer.println( "[surefire] Running " + report.getName() );
+ println( "[surefire] Running " + report.getName() );
}
public void batteryCompleted( ReportEntry report )
{
long runTime = System.currentTimeMillis() - batteryStartTime;
- writer.print( "[surefire] Tests run: " + completedCount +
+ print( "[surefire] Tests run: " + completedCount +
", Failures: " + failures +
", Errors: " + errors +
", Time elapsed: " + elapsedTimeAsString( runTime ) + " sec" );
@@ -103,8 +107,8 @@
writer.print( " <<<<<<<< FAILURE !! " );
}
- writer.println();
-
+ writer.println( "" );
+
writer.flush();
completedCount = 0;
Modified: maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/report/SummaryConsoleReporter.java
URL: http://svn.apache.org/viewcvs/maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/report/SummaryConsoleReporter.java?rev=381872&r1=381871&r2=381872&view=diff
==============================================================================
--- maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/report/SummaryConsoleReporter.java (original)
+++ maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/report/SummaryConsoleReporter.java Tue Feb 28 18:25:08 2006
@@ -16,70 +16,25 @@
* limitations under the License.
*/
-import java.io.BufferedOutputStream;
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-
/**
* Summary format console reporter.
* @author <a href="mailto:jruiz@exist.com">Johnny R. Ruiz III</a>
* @version $Id$
*/
public class SummaryConsoleReporter
- extends AbstractReporter
+ extends ConsoleReporter
{
- private static final int BUFFER_SIZE = 4096;
-
- private PrintWriter writer;
-
- public SummaryConsoleReporter()
- {
- writer = new PrintWriter( new OutputStreamWriter( new BufferedOutputStream( System.out, BUFFER_SIZE ) ) );
- }
-
- public void writeMessage( String message )
- {
- writer.println( message );
- writer.flush();
- }
-
- public void runStarting( int testCount )
- {
- writer.println();
- writer.println( "-------------------------------------------------------" );
- writer.println( " T E S T S" );
- writer.println( "-------------------------------------------------------" );
- writer.flush();
- }
-
- public void runAborted( ReportEntry report )
- {
- writer.println( "RUN ABORTED" );
- writer.println( report.getSource().getClass().getName() );
- writer.println( report.getName() );
- writer.println( report.getMessage() );
- writer.println( report.getThrowable().getMessage() );
- writer.flush();
- }
-
- public void batteryAborted( ReportEntry report )
+ public void batteryStarting( ReportEntry report )
+ throws Exception
{
- writer.println( "BATTERY ABORTED" );
- writer.println( report.getSource().getClass().getName() );
- writer.println( report.getName() );
- writer.println( report.getMessage() );
- writer.println( report.getThrowable().getMessage() );
- writer.flush();
}
public void batteryCompleted( ReportEntry report )
{
if ( failures > 0 || errors > 0 )
{
- writer.println( "[surefire] " + report.getName() + " <<<<<<<< FAILURE !! " );
+ println( "[surefire] " + report.getName() + " <<<<<<<< FAILURE !! " );
}
-
- writer.flush();
completedCount = 0;
Modified: maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/report/XMLReporter.java
URL: http://svn.apache.org/viewcvs/maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/report/XMLReporter.java?rev=381872&r1=381871&r2=381872&view=diff
==============================================================================
--- maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/report/XMLReporter.java (original)
+++ maven/surefire/branches/surefire-testng/surefire/src/main/java/org/apache/maven/surefire/report/XMLReporter.java Tue Feb 28 18:25:08 2006
@@ -16,19 +16,19 @@
* limitations under the License.
*/
+import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.xml.Xpp3Dom;
+import org.codehaus.plexus.util.xml.Xpp3DomWriter;
+
+import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
-import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.Enumeration;
import java.util.Properties;
import java.util.StringTokenizer;
-
-import org.codehaus.plexus.util.IOUtil;
-import org.codehaus.plexus.util.xml.Xpp3Dom;
-import org.codehaus.plexus.util.xml.Xpp3DomWriter;
/**