You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kr...@apache.org on 2012/01/04 23:18:47 UTC

svn commit: r1227353 [2/2] - in /maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its: ./ fixture/ misc/

Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire628ConsoleOutputBeforeAndAfterClassIT.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire628ConsoleOutputBeforeAndAfterClassIT.java?rev=1227353&r1=1227352&r2=1227353&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire628ConsoleOutputBeforeAndAfterClassIT.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire628ConsoleOutputBeforeAndAfterClassIT.java Wed Jan  4 22:18:44 2012
@@ -19,6 +19,8 @@ package org.apache.maven.surefire.its;
  * under the License.
  */
 
+import org.apache.maven.surefire.its.fixture.SurefireVerifierTestClass;
+
 /**
  * Asserts that console output always goes somewhere ;)
  *

Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire634UnsettableSystemPropertiesWarningIT.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire634UnsettableSystemPropertiesWarningIT.java?rev=1227353&r1=1227352&r2=1227353&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire634UnsettableSystemPropertiesWarningIT.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire634UnsettableSystemPropertiesWarningIT.java Wed Jan  4 22:18:44 2012
@@ -19,6 +19,8 @@ package org.apache.maven.surefire.its;
  * under the License.
  */
 
+import org.apache.maven.surefire.its.fixture.SurefireVerifierTestClass;
+
 /**
  * SUREFIRE-634 Verifies error message on unsettable system properties
  *

Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire673MockitoIT.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire673MockitoIT.java?rev=1227353&r1=1227352&r2=1227353&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire673MockitoIT.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire673MockitoIT.java Wed Jan  4 22:18:44 2012
@@ -19,6 +19,8 @@ package org.apache.maven.surefire.its;
  * under the License.
  */
 
+import org.apache.maven.surefire.its.fixture.SurefireVerifierTestClass;
+
 /**
  * SUREFIRE-673 Asserts that a given mockito build works as it should (classloader problem in 2.7)
  *

Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire674BuildFailingWhenErrorsIT.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire674BuildFailingWhenErrorsIT.java?rev=1227353&r1=1227352&r2=1227353&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire674BuildFailingWhenErrorsIT.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire674BuildFailingWhenErrorsIT.java Wed Jan  4 22:18:44 2012
@@ -21,6 +21,7 @@ package org.apache.maven.surefire.its;
 
 import junit.framework.Assert;
 import org.apache.maven.it.VerificationException;
+import org.apache.maven.surefire.its.fixture.SurefireVerifierTestClass;
 
 /**
  * SUREFIRE-674 Asserts that the build fails when tests have errors

Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire674BuildFailingWhenFailsafeErrorsIT.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire674BuildFailingWhenFailsafeErrorsIT.java?rev=1227353&r1=1227352&r2=1227353&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire674BuildFailingWhenFailsafeErrorsIT.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire674BuildFailingWhenFailsafeErrorsIT.java Wed Jan  4 22:18:44 2012
@@ -20,6 +20,7 @@ package org.apache.maven.surefire.its;
  */
 
 import org.apache.maven.it.VerificationException;
+import org.apache.maven.surefire.its.fixture.SurefireVerifierTestClass;
 
 import junit.framework.Assert;
 

Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire685CommaSeparatedIncludesIT.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire685CommaSeparatedIncludesIT.java?rev=1227353&r1=1227352&r2=1227353&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire685CommaSeparatedIncludesIT.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire685CommaSeparatedIncludesIT.java Wed Jan  4 22:18:44 2012
@@ -19,6 +19,8 @@ package org.apache.maven.surefire.its;
  * under the License.
  */
 
+import org.apache.maven.surefire.its.fixture.SurefireVerifierTestClass;
+
 /**
  * SUREFIRE-685 Asserts that only the specified tests are run with comma separated includes
  *

Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire697NiceSummaryIT.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire697NiceSummaryIT.java?rev=1227353&r1=1227352&r2=1227353&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire697NiceSummaryIT.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire697NiceSummaryIT.java Wed Jan  4 22:18:44 2012
@@ -19,6 +19,8 @@ package org.apache.maven.surefire.its;
  * under the License.
  */
 
+import org.apache.maven.surefire.its.fixture.SurefireVerifierTestClass;
+
 /**
  * SUREFIRE-697 Asserts proper truncation of long exception messages Some say testing this is a bit over the top.
  * 

Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire705ParallelForkTimeoutIT.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire705ParallelForkTimeoutIT.java?rev=1227353&r1=1227352&r2=1227353&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire705ParallelForkTimeoutIT.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire705ParallelForkTimeoutIT.java Wed Jan  4 22:18:44 2012
@@ -20,6 +20,7 @@ package org.apache.maven.surefire.its;
  */
 
 import org.apache.maven.it.VerificationException;
+import org.apache.maven.surefire.its.fixture.SurefireVerifierTestClass;
 
 /**
  * Test

Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire733AllOverrridesCapturedIT.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire733AllOverrridesCapturedIT.java?rev=1227353&r1=1227352&r2=1227353&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire733AllOverrridesCapturedIT.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire733AllOverrridesCapturedIT.java Wed Jan  4 22:18:44 2012
@@ -20,6 +20,7 @@ package org.apache.maven.surefire.its;
  */
 
 import org.apache.maven.it.VerificationException;
+import org.apache.maven.surefire.its.fixture.SurefireVerifierTestClass;
 
 /**
  * @author Kristian Rosenvold

Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire735ForkFailWithRedirectConsoleOutputIT.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire735ForkFailWithRedirectConsoleOutputIT.java?rev=1227353&r1=1227352&r2=1227353&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire735ForkFailWithRedirectConsoleOutputIT.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire735ForkFailWithRedirectConsoleOutputIT.java Wed Jan  4 22:18:44 2012
@@ -20,6 +20,7 @@ package org.apache.maven.surefire.its;
  */
 
 import org.apache.maven.it.VerificationException;
+import org.apache.maven.surefire.its.fixture.SurefireVerifierTestClass;
 
 import junit.framework.Assert;
 

Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire747MethodParallelWithSuiteCountIT.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire747MethodParallelWithSuiteCountIT.java?rev=1227353&r1=1227352&r2=1227353&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire747MethodParallelWithSuiteCountIT.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire747MethodParallelWithSuiteCountIT.java Wed Jan  4 22:18:44 2012
@@ -19,6 +19,8 @@ package org.apache.maven.surefire.its;
  * under the License.
  */
 
+import org.apache.maven.surefire.its.fixture.SurefireVerifierTestClass;
+
 /**
  * @author Kristian Rosenvold
  */

Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire801ForkModeNoneClassLoaderIT.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire801ForkModeNoneClassLoaderIT.java?rev=1227353&r1=1227352&r2=1227353&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire801ForkModeNoneClassLoaderIT.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire801ForkModeNoneClassLoaderIT.java Wed Jan  4 22:18:44 2012
@@ -19,6 +19,8 @@ package org.apache.maven.surefire.its;
  * under the License.
  */
 
+import org.apache.maven.surefire.its.fixture.SurefireVerifierTestClass;
+
 /**
  * Test
  *

Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/SystemPropertiesTestIT.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/SystemPropertiesTestIT.java?rev=1227353&r1=1227352&r2=1227353&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/SystemPropertiesTestIT.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/SystemPropertiesTestIT.java Wed Jan  4 22:18:44 2012
@@ -19,6 +19,8 @@ package org.apache.maven.surefire.its;
  * under the License.
  */
 
+import org.apache.maven.surefire.its.fixture.SurefireVerifierTestClass;
+
 /**
  * Test system properties
  *

Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TestNgGroupsIT.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TestNgGroupsIT.java?rev=1227353&r1=1227352&r2=1227353&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TestNgGroupsIT.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TestNgGroupsIT.java Wed Jan  4 22:18:44 2012
@@ -19,6 +19,8 @@ package org.apache.maven.surefire.its;
  * under the License.
  */
 
+import org.apache.maven.surefire.its.fixture.SurefireVerifierTestClass;
+
 /**
  * Test that TestNG's @Test(threadPoolSize = n, invocationCount=n) causes tests to be run in parallel.
  * 

Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TestNgParallelWithAnnotationsIT.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TestNgParallelWithAnnotationsIT.java?rev=1227353&r1=1227352&r2=1227353&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TestNgParallelWithAnnotationsIT.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TestNgParallelWithAnnotationsIT.java Wed Jan  4 22:18:44 2012
@@ -19,6 +19,8 @@ package org.apache.maven.surefire.its;
  * under the License.
  */
 
+import org.apache.maven.surefire.its.fixture.SurefireVerifierTestClass;
+
 /**
  * Test that TestNG's @Test(threadPoolSize = n, invocationCount=n) causes tests to be run in parallel.
  * 

Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TimeoutForkedTestIT.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TimeoutForkedTestIT.java?rev=1227353&r1=1227352&r2=1227353&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TimeoutForkedTestIT.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TimeoutForkedTestIT.java Wed Jan  4 22:18:44 2012
@@ -20,6 +20,7 @@ package org.apache.maven.surefire.its;
  */
 
 import org.apache.maven.it.VerificationException;
+import org.apache.maven.surefire.its.fixture.SurefireVerifierTestClass;
 
 /**
  * Test

Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/UseIsolatedClassLoaderIT.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/UseIsolatedClassLoaderIT.java?rev=1227353&r1=1227352&r2=1227353&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/UseIsolatedClassLoaderIT.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/UseIsolatedClassLoaderIT.java Wed Jan  4 22:18:44 2012
@@ -19,6 +19,8 @@ package org.apache.maven.surefire.its;
  * under the License.
  */
 
+import org.apache.maven.surefire.its.fixture.SurefireVerifierTestClass;
+
 /**
  * Test useSystemClassLoader option
  *

Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/WorkingDirectoryIT.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/WorkingDirectoryIT.java?rev=1227353&r1=1227352&r2=1227353&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/WorkingDirectoryIT.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/WorkingDirectoryIT.java Wed Jan  4 22:18:44 2012
@@ -22,112 +22,104 @@ package org.apache.maven.surefire.its;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
-import java.util.List;
 import java.util.Properties;
-
-import org.apache.maven.it.Verifier;
-import org.apache.maven.it.util.ResourceExtractor;
-import org.apache.maven.surefire.its.misc.HelperAssertions;
+import org.apache.maven.it.VerificationException;
+import org.apache.maven.surefire.its.fixture.OutputValidator;
+import org.apache.maven.surefire.its.fixture.SurefireLauncher;
+import org.apache.maven.surefire.its.fixture.SurefireVerifierTestClass2;
+import org.apache.maven.surefire.its.fixture.TestFile;
 
 /**
  * Test working directory configuration, SUREFIRE-416
  *
  * @author <a href="mailto:dfabulich@apache.org">Dan Fabulich</a>
+ * @author <a href="mailto:krosenvold@apache.org">Kristian Rosenvold</a>
  */
 public class WorkingDirectoryIT
-    extends AbstractSurefireIntegrationTestClass
+    extends SurefireVerifierTestClass2
 {
 
-    private File testDir;
-
-    private File childTestDir;
+    public void testWorkingDirectory()
+        throws Exception
+    {
+        final SurefireLauncher unpack = getUnpacked();
+        final OutputValidator child = getPreparedChild( unpack );
+        unpack.executeTest().verifyErrorFreeLog();
+        child.assertTestSuiteResults( 1, 0, 0, 0 );
+        verifyOutputDirectory( child );
+    }
 
-    private File outFile;
+    public void testWorkingDirectoryNoFork()
+        throws Exception
+    {
+        final SurefireLauncher unpack = getUnpacked();
+        final OutputValidator child = getPreparedChild( unpack );
+        unpack.forkNever().executeTest().verifyErrorFreeLog();
+        child.assertTestSuiteResults( 1, 0, 0, 0 );
+        verifyOutputDirectory( child );
+    }
 
-    public void setUp()
-        throws IOException
+    public void testWorkingDirectoryChildOnly()
+        throws Exception
     {
-        testDir = ResourceExtractor.simpleExtractResources( getClass(), "/working-directory" );
-        childTestDir = new File( testDir, "child" );
-        File targetDir = new File( childTestDir, "target" );
-        outFile = new File( targetDir, "out.txt" );
-        //noinspection ResultOfMethodCallIgnored
-        outFile.delete();
+        final SurefireLauncher unpack = getUnpacked();
+        final SurefireLauncher child = unpack.getSubProjectLauncher( "child" );
+        //child.getTargetFile( "out.txt" ).delete();
+        final OutputValidator outputValidator = child.executeTest().assertTestSuiteResults( 1, 0, 0, 0 );
+        verifyOutputDirectory( outputValidator );
     }
 
-    public void testWorkingDirectory()
+    public void testWorkingDirectoryChildOnlyNoFork()
         throws Exception
     {
-        Verifier verifier = new Verifier( testDir.getAbsolutePath() );
-        this.executeGoal( verifier, "test" );
-        verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
 
-        HelperAssertions.assertTestSuiteResults( 1, 0, 0, 0, childTestDir );
-        verifyOutputDirectory( childTestDir );
+        final SurefireLauncher unpack = getUnpacked();
+        final SurefireLauncher child = unpack.getSubProjectLauncher( "child" );
+        //child.getTargetFile( "out.txt" ).delete();
+        final OutputValidator outputValidator = child.forkNever().executeTest().assertTestSuiteResults( 1, 0, 0, 0 );
+        verifyOutputDirectory( outputValidator );
+    }
+
+    private SurefireLauncher getUnpacked()
+        throws VerificationException, IOException
+    {
+        return unpack( "working-directory" );
+    }
+
+    private OutputValidator getPreparedChild( SurefireLauncher unpack )
+        throws VerificationException
+    {
+        final OutputValidator child = unpack.getSubProjectValidator( "child" );
+        getOutFile(child).delete();
+        return child;
+    }
+
+    
+    private TestFile getOutFile(OutputValidator child ){
+        return child.getTargetFile( "out.txt" );
     }
 
-    public void verifyOutputDirectory( File childTestDir )
+    public void verifyOutputDirectory( OutputValidator childTestDir )
         throws IOException
     {
+        final TestFile outFile = getOutFile( childTestDir );
         assertTrue( "out.txt doesn't exist: " + outFile.getAbsolutePath(), outFile.exists() );
         Properties p = new Properties();
-        FileInputStream is = new FileInputStream( outFile );
+        FileInputStream is = outFile.getFileInputStream();
         p.load( is );
         is.close();
         String userDirPath = p.getProperty( "user.dir" );
         assertNotNull( "user.dir was null in property file", userDirPath );
         File userDir = new File( userDirPath );
         // test if not a symlink
-        if ( childTestDir.getCanonicalFile().equals( childTestDir.getAbsoluteFile() ) )
+        if ( childTestDir.getBaseDir().equals( childTestDir.getBaseDir().getAbsoluteFile() ) )
         {
-            assertEquals( "wrong user.dir ! symlink ", childTestDir.getAbsolutePath(), userDir.getAbsolutePath() );
+            assertEquals( "wrong user.dir ! symlink ", childTestDir.getBaseDir().getAbsolutePath(), userDir.getAbsolutePath() );
         }
         else
         {
-            assertEquals( "wrong user.dir symlink ", childTestDir.getCanonicalPath(), userDir.getCanonicalPath() );
+            assertEquals( "wrong user.dir symlink ", childTestDir.getBaseDir().getCanonicalPath(), userDir.getCanonicalPath() );
         }
     }
 
-    public void testWorkingDirectoryNoFork()
-        throws Exception
-    {
-        Verifier verifier = new Verifier( testDir.getAbsolutePath() );
-        List<String> goals = this.getInitialGoals();
-        goals.add( "test" );
-        goals.add( "-DforkMode=never" );
-        executeGoals( verifier, goals );
-        verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
-
-        HelperAssertions.assertTestSuiteResults( 1, 0, 0, 0, childTestDir );
-        verifyOutputDirectory( childTestDir );
-    }
-
-    public void testWorkingDirectoryChildOnly()
-        throws Exception
-    {
-        Verifier verifier = new Verifier( childTestDir.getAbsolutePath() );
-        this.executeGoal( verifier, "test" );
-        verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
-
-        HelperAssertions.assertTestSuiteResults( 1, 0, 0, 0, childTestDir );
-        verifyOutputDirectory( childTestDir );
-    }
-
-    public void testWorkingDirectoryChildOnlyNoFork()
-        throws Exception
-    {
-        Verifier verifier = new Verifier( childTestDir.getAbsolutePath() );
-        List<String> goals = this.getInitialGoals();
-        goals.add( "test" );
-        goals.add( "-DforkMode=never" );
-        executeGoals( verifier, goals );
-        verifier.verifyErrorFreeLog();
-        verifier.resetStreams();
-
-        HelperAssertions.assertTestSuiteResults( 1, 0, 0, 0, childTestDir );
-        verifyOutputDirectory( childTestDir );
-    }
 }

Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/WorkingDirectoryIsInvalidPropertyIT.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/WorkingDirectoryIsInvalidPropertyIT.java?rev=1227353&r1=1227352&r2=1227353&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/WorkingDirectoryIsInvalidPropertyIT.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/WorkingDirectoryIsInvalidPropertyIT.java Wed Jan  4 22:18:44 2012
@@ -1,38 +1,20 @@
 package org.apache.maven.surefire.its;
 
-import java.io.File;
-import java.io.IOException;
-
-import org.apache.maven.it.VerificationException;
-import org.apache.maven.it.Verifier;
-import org.apache.maven.it.util.ResourceExtractor;
+import org.apache.maven.surefire.its.fixture.SurefireVerifierTestClass2;
 
 /**
  * Test when the configured working directory is an invalid property, SUREFIRE-715
+ *
+ * @author <a href="mailto:krosenvold@apache.org">Kristian Rosenvold</a>
  */
 public class WorkingDirectoryIsInvalidPropertyIT
-    extends AbstractSurefireIntegrationTestClass
+    extends SurefireVerifierTestClass2
 {
-    private File testDir;
-
-    public void setUp()
-        throws IOException
-    {
-        testDir = ResourceExtractor.simpleExtractResources( getClass(), "/working-directory-is-invalid-property" );
-    }
-
     public void testWorkingDirectory()
         throws Exception
     {
-        Verifier verifier = new Verifier( testDir.getAbsolutePath() );
-        try
-        {
-            executeGoal( verifier, "test" );
-        }
-        catch ( VerificationException e )
-        {
-        }
-        verifier.verifyTextInLog( "workingDirectory cannot be null" );
-        verifier.resetStreams();
+        unpack( "working-directory-is-invalid-property" )
+            .executeTestWithFailure()
+            .verifyTextInLog( "workingDirectory cannot be null" );
     }
 }
\ No newline at end of file

Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/WorkingDirectoryMissingIT.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/WorkingDirectoryMissingIT.java?rev=1227353&r1=1227352&r2=1227353&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/WorkingDirectoryMissingIT.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/WorkingDirectoryMissingIT.java Wed Jan  4 22:18:44 2012
@@ -19,6 +19,8 @@ package org.apache.maven.surefire.its;
  * under the License.
  */
 
+import org.apache.maven.surefire.its.fixture.SurefireVerifierTestClass;
+
 /**
  * Test when the configured working directory does not exist, SUREFIRE-607
  *

Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/XmlReporterRunTimeIT.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/XmlReporterRunTimeIT.java?rev=1227353&r1=1227352&r2=1227353&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/XmlReporterRunTimeIT.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/XmlReporterRunTimeIT.java Wed Jan  4 22:18:44 2012
@@ -21,6 +21,7 @@ package org.apache.maven.surefire.its;
 
 import java.io.File;
 import java.util.List;
+import org.apache.maven.surefire.its.fixture.SurefireVerifierTestClass;
 import org.apache.maven.surefire.its.misc.HelperAssertions;
 import org.apache.maven.surefire.its.misc.ReportTestSuite;
 

Copied: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/OutputValidator.java (from r1226944, maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/SurefireVerifier.java)
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/OutputValidator.java?p2=maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/OutputValidator.java&p1=maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/SurefireVerifier.java&r1=1226944&r2=1227353&rev=1227353&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/SurefireVerifier.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/OutputValidator.java Wed Jan  4 22:18:44 2012
@@ -1,4 +1,4 @@
-package org.apache.maven.surefire.its;
+package org.apache.maven.surefire.its.fixture;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -31,17 +31,17 @@ import org.apache.maven.surefire.its.mis
  *
  * @author Kristian Rosenvold
  */
-public class SurefireVerifier
+public class OutputValidator
 {
-    private final Verifier verifier;
+    protected final Verifier verifier;
     
-    private final File baseDir;
+    protected final File baseDir;
 
-    public static SurefireVerifier fromDirectory(File testDir)
+    public static OutputValidator fromDirectory(File testDir)
     {
         try
         {
-            return new SurefireVerifier( new Verifier( testDir.getAbsolutePath()) , testDir);
+            return new OutputValidator( new Verifier( testDir.getAbsolutePath()) );
         }
         catch ( VerificationException e )
         {
@@ -50,10 +50,11 @@ public class SurefireVerifier
 
     }
 
-    public SurefireVerifier( Verifier verifier, File baseDir )
+    public OutputValidator( Verifier verifier )
     {
         this.verifier = verifier;
-        this.baseDir = baseDir;
+        this.baseDir = new File( verifier.getBasedir());
+
     }
 
     public void assertFilePresent( String file )
@@ -82,17 +83,19 @@ public class SurefireVerifier
         verifier.resetStreams();
     }
 
-    public void verifyTextInLog( String text )
+    public OutputValidator verifyTextInLog( String text )
         throws VerificationException
     {
         verifier.verifyTextInLog( text );
+        return this;
     }
 
 
-    public void verifyErrorFreeLog()
+    public OutputValidator verifyErrorFreeLog()
         throws VerificationException
     {
         verifier.verifyErrorFreeLog();
+        return this;
     }
 
     public List loadFile( String basedir, String filename, boolean hasCommand )
@@ -101,9 +104,10 @@ public class SurefireVerifier
         return verifier.loadFile( basedir, filename, hasCommand );
     }
 
-    public List loadFile( File file, boolean hasCommand )
+    public List<String> loadFile( File file, boolean hasCommand )
         throws VerificationException
     {
+        //noinspection unchecked
         return verifier.loadFile( file, hasCommand );
     }
 
@@ -118,6 +122,18 @@ public class SurefireVerifier
         return verifier.getBasedir();
     }
 
+    /**
+     * Returns a file, referenced from the extracted root (where pom.xml is located)
+     *
+     * @param path The subdirectory under basedir
+     * @return A file
+     */
+    protected File getSubFile( String path )
+    {
+        return new File( getBasedir(), path );
+    }
+    
+
     public String getMavenVersion()
         throws VerificationException
     {
@@ -131,12 +147,20 @@ public class SurefireVerifier
     }
 
     
-    public void assertTestSuiteResults( int total, int errors, int failures, int skipped )
+    public OutputValidator assertTestSuiteResults( int total, int errors, int failures, int skipped )
     {
         HelperAssertions.assertTestSuiteResults( total, errors, failures, skipped, baseDir );
+        return this;
     }
 
-    
-    
-    
+    public TestFile getTargetFile( String fileName )
+    {
+        File targetDir = getSubFile( "target" );
+        return new TestFile(new File( targetDir, fileName ), this);
+    }
+
+    public File getBaseDir()
+    {
+        return baseDir;
+    }
 }

Propchange: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/OutputValidator.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/SurefireLauncher.java (from r1226944, maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/SurefireVerifierTestClass.java)
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/SurefireLauncher.java?p2=maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/SurefireLauncher.java&p1=maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/SurefireVerifierTestClass.java&r1=1226944&r2=1227353&rev=1227353&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/SurefireVerifierTestClass.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/SurefireLauncher.java Wed Jan  4 22:18:44 2012
@@ -1,4 +1,4 @@
-package org.apache.maven.surefire.its;
+package org.apache.maven.surefire.its.fixture;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -30,15 +30,14 @@ import org.apache.maven.artifact.version
 import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
 import org.apache.maven.artifact.versioning.VersionRange;
 import org.apache.maven.it.VerificationException;
+import org.apache.maven.it.Verifier;
 import org.apache.maven.it.util.FileUtils;
 import org.apache.maven.it.util.ResourceExtractor;
 
 import junit.framework.Assert;
-import junit.framework.TestCase;
 
 /**
- * Contains commonly used features for most tests, encapsulating
- * common use cases.
+ * Encapsulate all needed features to start a surefire run
  * <p/>
  * Also includes thread-safe access to the extracted resource
  * files, which AbstractSurefireIntegrationTestClass does not.
@@ -46,16 +45,11 @@ import junit.framework.TestCase;
  *
  * @author Kristian Rosenvold
  */
-public abstract class SurefireVerifierTestClass
-    extends TestCase
+public class SurefireLauncher
 {
-    private final File testDir;
-
     private final List<String> cliOptions = new ArrayList<String>();
 
-    private final List<String> goals;
-
-    private final SurefireVerifier defaultVerifier;
+    private final List<String> goals = getInitialGoals();
 
     private final Map<String, String> envvars = new HashMap<String, String>();
 
@@ -63,25 +57,41 @@ public abstract class SurefireVerifierTe
 
     private final String surefireVersion = System.getProperty( "surefire.version" );
 
-    protected SurefireVerifierTestClass( String testProject )
+    private final Verifier verifier;
+
+    private final OutputValidator surefireVerifier;
+
+    private boolean failIfNoTests;
+
+
+    public SurefireLauncher( Class testClass, String resourceName )
+        throws VerificationException, IOException
     {
-        try
-        {
-            testDir = simpleExtractResources( getClass(), testProject );
-            this.goals = getInitialGoals();
-            this.defaultVerifier = SurefireVerifier.fromDirectory(testDir );
-        }
-        catch ( IOException e )
-        {
-            throw new RuntimeException( e );
-        }
+        this( createVerifier( testClass, resourceName ) );
+
+    }
+
+    protected SurefireLauncher( Verifier verifier )
+    {
+        this.verifier = verifier;
+        this.surefireVerifier = new OutputValidator( verifier );
+        goals.clear();
+        goals.addAll( getInitialGoals() );
+        cliOptions.clear();
     }
 
-    private File simpleExtractResources( Class<?> cl, String resourcePath )
+    private static Verifier createVerifier(Class testClass, String resourceName)
+        throws IOException, VerificationException
+    {
+        return new Verifier( simpleExtractResources(  testClass, resourceName).getAbsolutePath() );
+    }
+
+    private static File simpleExtractResources( Class<?> cl, String resourcePath )
         throws IOException
     {
+        if (!resourcePath.startsWith( "/" ))  resourcePath = "/" + resourcePath;
         String tempDirPath = System.getProperty( "maven.test.tmpdir", System.getProperty( "java.io.tmpdir" ) );
-        File tempDir = new File( tempDirPath, this.getClass().getSimpleName() );
+        File tempDir = new File( tempDirPath, cl.getSimpleName() );
         File testDir = new File( tempDir, resourcePath );
         FileUtils.deleteDirectory( testDir );
 
@@ -95,6 +105,18 @@ public abstract class SurefireVerifierTe
         cliOptions.clear();
     }
 
+    public SurefireLauncher getSubProjectLauncher(String subProject)
+        throws VerificationException
+    {
+        final File subFile = surefireVerifier.getSubFile( subProject );
+        return new SurefireLauncher( new Verifier( subFile.getAbsolutePath() ));
+    }
+    public OutputValidator getSubProjectValidator( String subProject )
+        throws VerificationException
+    {
+        final File subFile = surefireVerifier.getSubFile( subProject );
+        return new OutputValidator( new Verifier( subFile.getAbsolutePath() ));
+    }
 
     protected void addEnvVar( String key, String value )
     {
@@ -127,181 +149,148 @@ public abstract class SurefireVerifierTe
         return goals1;
     }
 
-    /**
-     * Returns a file, referenced from the extracted root (where pom.xml is located)
-     *
-     * @param path The subdirectory under basedir
-     * @return A file
-     */
-    protected File getSubFile( String path )
-    {
-        return new File( testDir, path );
-    }
-
-    protected void assertPresent( File file )
+    public void assertPresent( File file )
     {
-        defaultVerifier.assertFilePresent( file.getAbsolutePath() );
+        verifier.assertFilePresent( file.getAbsolutePath() );
     }
 
-    protected void assertNotPresent( File file )
+    public void assertNotPresent( File file )
     {
-        defaultVerifier.assertFileNotPresent( file.getAbsolutePath() );
+        verifier.assertFileNotPresent( file.getAbsolutePath() );
     }
 
-    protected void showErrorStackTraces()
+    public SurefireLauncher showErrorStackTraces()
     {
         cliOptions.add( "-e" );
+        return this;
     }
 
-    protected void debugLogging()
+    public SurefireLauncher debugLogging()
     {
         cliOptions.add( "-X" );
+        return this;
     }
 
-    protected void failNever()
+    public SurefireLauncher failNever()
     {
         cliOptions.add( "-fn" );
+        return this;
+
+    }
+    
+    public SurefireLauncher groups(String groups){
+        goals.add( "-Dgroups=" + groups );
+        return this;
     }
 
-    protected SurefireVerifierTestClass addGoal( String goal )
+
+    public SurefireLauncher addGoal( String goal )
     {
         goals.add( goal );
         return this;
     }
 
-    protected SurefireVerifier executeTest()
+    public OutputValidator executeTest()
         throws VerificationException
     {
         return execute( "test" );
     }
 
-    protected SurefireVerifier executeVerify()
+    public OutputValidator executeInstall()
+        throws VerificationException
+    {
+        return execute( "install" );
+    }
+
+    public OutputValidator executeTestWithFailure()
+    {
+        try {
+            execute( "test" );
+        } catch (VerificationException ignore) {
+            return surefireVerifier;
+        }
+        throw new RuntimeException( "Expecting build failure, got none!" );
+    }
+
+    protected OutputValidator executeVerify()
         throws VerificationException
     {
         return execute( "verify" );
     }
 
-    protected SurefireVerifier execute( String goal )
+    private OutputValidator execute( String goal )
         throws VerificationException
     {
         addGoal( goal );
-        defaultVerifier.setCliOptions( cliOptions );
+        verifier.setCliOptions( cliOptions );
         try
         {
-            defaultVerifier.executeGoals( goals, envvars );
-            return defaultVerifier;
+            verifier.executeGoals( goals, envvars );
+            return surefireVerifier;
         }
         finally
         {
-            defaultVerifier.resetStreams();
+            verifier.resetStreams();
         }
     }
 
-    protected File getSurefireReportsFile( String fileName )
-    {
-        File targetDir = getSubFile( "target/surefire-reports" );
-        return new File( targetDir, fileName );
-    }
 
-    protected File getSiteFile( String fileName )
+    public SurefireLauncher printSummary( boolean printsummary )
     {
-        File targetDir = getSubFile( "target/site" );
-        return new File( targetDir, fileName );
+        return addGoal( "-DprintSummary=" + printsummary );
     }
 
-    protected File getTargetFile( String fileName )
+    public SurefireLauncher redirectToFileReally( boolean redirect )
     {
-        File targetDir = getSubFile( "target" );
-        return new File( targetDir, fileName );
+        return addGoal( "-Dmaven.test.redirectTestOutputToFile=" + redirect );
     }
 
-    protected File getSiteFile( String moduleName, String fileName )
+    public SurefireLauncher redirectToFile( boolean redirect )
     {
-        File targetDir = getSubFile( moduleName + "/target/site" );
-        return new File( targetDir, fileName );
-    }
-
-    protected void printSummary( boolean printsummary )
-    {
-        addGoal( "-DprintSummary=" + printsummary );
-    }
-
-    protected void redirectToFileReally( boolean redirect )
-    {
-        addGoal( "-Dmaven.test.redirectTestOutputToFile=" + redirect );
-    }
-
-    protected void redirectToFile( boolean redirect )
-    {
-        redirectToFileReally( redirect );
+        return redirectToFileReally( redirect );
         //addGoal( "-Dredirect.to.file=" + redirect );
     }
 
-    protected void forkOnce()
+    public SurefireLauncher forkOnce()
     {
-        forkMode( "once" );
+        return forkMode( "once" );
     }
 
-    protected void forkNever()
+    public SurefireLauncher forkNever()
     {
-        forkMode( "never" );
+        return forkMode( "never" );
     }
 
-    protected void forkAlways()
+    public SurefireLauncher forkAlways()
     {
-        forkMode( "always" );
+        return forkMode( "always" );
     }
 
-    protected void forkMode( String forkMode )
+    public SurefireLauncher forkMode( String forkMode )
     {
-        addGoal( "-DforkMode=" + forkMode );
+        return addGoal( "-DforkMode=" + forkMode );
     }
-    protected void runOrder( String runOrder )
+    public SurefireLauncher runOrder( String runOrder )
     {
-        addGoal( "-DrunOrder=" + runOrder);
+        return addGoal( "-DrunOrder=" + runOrder);
     }
 
-    protected void failIfNoTests( boolean fail )
+    public SurefireLauncher failIfNoTests( boolean fail )
     {
-        addGoal( "-DfailIfNoTests=" + fail );
+        this.failIfNoTests = fail;
+        return addGoal( "-DfailIfNoTests=" + fail );
     }
 
-    protected void activateProfile( String profile )
+    public SurefireLauncher activateProfile( String profile )
     {
-        addGoal( "-P" + profile );
+        return addGoal( "-P" + profile );
     }
 
-    public void assertTestSuiteResults( int total, int errors, int failures, int skipped )
-    {
-        getDefaultVerifier().assertTestSuiteResults( total, errors, failures, skipped );
-    }
-
-    public void verifyTextInLog( String text )
-        throws VerificationException
-    {
-        defaultVerifier.verifyTextInLog( text );
-    }
-
-    protected void verifyErrorFreeLog()
-    throws VerificationException
-    {
-        defaultVerifier.verifyErrorFreeLog();
-    }
-
-    protected SurefireVerifier getDefaultVerifier()
-    {
-        return defaultVerifier;
-    }
-
-    public File getTestDir()
-    {
-        return testDir;
-    }
 
     protected boolean assertContainsText( File file, String text )
         throws VerificationException
     {
-        final List<String> list = getDefaultVerifier().loadFile( file, false );
+        final List<String> list = surefireVerifier.loadFile( file, false );
         for ( String line : list )
         {
             if ( line.contains( text ) )
@@ -334,16 +323,16 @@ public abstract class SurefireVerifierTe
     private List<String> getLog()
         throws VerificationException
     {
-        return defaultVerifier.loadFile( defaultVerifier.getBasedir(), defaultVerifier.getLogFileName(), false );
+        return verifier.loadFile( verifier.getBasedir(), verifier.getLogFileName(), false );
     }
 
 
 
-    private DefaultArtifactVersion getMavenVersion()
+    private DefaultArtifactVersion getMavenArtifacteVersion()
     {
         try
         {
-            String v = defaultVerifier.getMavenVersion();
+            String v = verifier.getMavenVersion();
             // NOTE: If the version looks like "${...}" it has been configured from an undefined expression
             if ( v != null && v.length() > 0 && !v.startsWith( "${" ) )
             {
@@ -376,7 +365,7 @@ public abstract class SurefireVerifierTe
                 "Invalid version range: " + versionRangeStr ).initCause( e );
         }
 
-        ArtifactVersion version = getMavenVersion();
+        ArtifactVersion version = getMavenArtifacteVersion();
         if ( version != null )
         {
             return versionRange.containsVersion( version );
@@ -408,36 +397,47 @@ public abstract class SurefireVerifierTe
             + ":failsafe-report-only";
     }
 
-    protected void parallel( String parallel )
+    public SurefireLauncher parallel( String parallel )
     {
-        addD( "parallel", parallel );
+        return addD( "parallel", parallel );
     }
 
 
-    protected void parallelClasses()
+    public SurefireLauncher parallelClasses()
     {
-        parallel( "classes" );
+        return parallel( "classes" );
     }
 
-    protected void parallelMethods()
+    public SurefireLauncher parallelMethods()
     {
-        parallel( "methods" );
+        return parallel( "methods" );
     }
 
 
-    protected void addD( String variable, String value )
+    public SurefireLauncher addD( String variable, String value )
+    {
+        return addGoal( "-D" + variable + "=" + value );
+    }
+
+    public SurefireLauncher setGroups( String groups )
     {
-        addGoal( "-D" + variable + "=" + value );
+        return addD( "groups", groups );
     }
 
-    public void setGroups( String groups )
+    public SurefireLauncher setExcludedGroups( String excludedGroups )
     {
-        addD( "groups", groups );
+        return addD( "excludedGroups", excludedGroups );
     }
 
-    public void setExcludedGroups( String excludedGroups )
+    public SurefireLauncher setEOption()
     {
-        addD( "excludedGroups", excludedGroups );
+        cliOptions.add( "-e" );
+        return this;
     }
 
+
+    public boolean isFailIfNoTests()
+    {
+        return failIfNoTests;
+    }
 }

Copied: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/SurefireVerifierTestClass.java (from r1226944, maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/SurefireVerifierTestClass.java)
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/SurefireVerifierTestClass.java?p2=maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/SurefireVerifierTestClass.java&p1=maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/SurefireVerifierTestClass.java&r1=1226944&r2=1227353&rev=1227353&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/SurefireVerifierTestClass.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/SurefireVerifierTestClass.java Wed Jan  4 22:18:44 2012
@@ -1,4 +1,4 @@
-package org.apache.maven.surefire.its;
+package org.apache.maven.surefire.its.fixture;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -55,7 +55,7 @@ public abstract class SurefireVerifierTe
 
     private final List<String> goals;
 
-    private final SurefireVerifier defaultVerifier;
+    private final OutputValidator defaultVerifier;
 
     private final Map<String, String> envvars = new HashMap<String, String>();
 
@@ -69,7 +69,7 @@ public abstract class SurefireVerifierTe
         {
             testDir = simpleExtractResources( getClass(), testProject );
             this.goals = getInitialGoals();
-            this.defaultVerifier = SurefireVerifier.fromDirectory(testDir );
+            this.defaultVerifier = OutputValidator.fromDirectory( testDir );
         }
         catch ( IOException e )
         {
@@ -169,19 +169,28 @@ public abstract class SurefireVerifierTe
         return this;
     }
 
-    protected SurefireVerifier executeTest()
+    protected OutputValidator executeTest()
         throws VerificationException
     {
         return execute( "test" );
     }
 
-    protected SurefireVerifier executeVerify()
+    protected OutputValidator executeTestWithFailure()
+    {
+        try {
+            execute( "test" );
+        } catch (VerificationException ignore) {
+        }
+        return getDefaultVerifier();
+    }
+
+    protected OutputValidator executeVerify()
         throws VerificationException
     {
         return execute( "verify" );
     }
 
-    protected SurefireVerifier execute( String goal )
+    protected OutputValidator execute( String goal )
         throws VerificationException
     {
         addGoal( goal );
@@ -288,7 +297,7 @@ public abstract class SurefireVerifierTe
         defaultVerifier.verifyErrorFreeLog();
     }
 
-    protected SurefireVerifier getDefaultVerifier()
+    protected OutputValidator getDefaultVerifier()
     {
         return defaultVerifier;
     }

Propchange: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/SurefireVerifierTestClass.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/SurefireVerifierTestClass2.java (from r1226944, maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire733AllOverrridesCapturedIT.java)
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/SurefireVerifierTestClass2.java?p2=maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/SurefireVerifierTestClass2.java&p1=maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire733AllOverrridesCapturedIT.java&r1=1226944&r2=1227353&rev=1227353&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire733AllOverrridesCapturedIT.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/SurefireVerifierTestClass2.java Wed Jan  4 22:18:44 2012
@@ -1,4 +1,4 @@
-package org.apache.maven.surefire.its;
+package org.apache.maven.surefire.its.fixture;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -19,23 +19,27 @@ package org.apache.maven.surefire.its;
  * under the License.
  */
 
+import java.io.IOException;
 import org.apache.maven.it.VerificationException;
 
+import junit.framework.TestCase;
+
 /**
+ * Contains commonly used features for most tests, encapsulating
+ * common use cases.
+ * <p/>
+ * Also includes thread-safe access to the extracted resource
+ * files, which AbstractSurefireIntegrationTestClass does not.
+ * Thread safe only for running in "classes" mode.
+ *
  * @author Kristian Rosenvold
  */
-public class Surefire733AllOverrridesCapturedIT
-    extends SurefireVerifierTestClass
+public abstract class SurefireVerifierTestClass2
+    extends TestCase
 {
-    public Surefire733AllOverrridesCapturedIT()
-    {
-        super( "/surefire-733-allOverridesCaptured" );
-    }
-
-    public void testLogOutput()
-        throws VerificationException
+    public SurefireLauncher unpack( String projectName )
+        throws VerificationException, IOException
     {
-        executeTest();
-        verifyTextInLog( "abc" );
+        return new SurefireLauncher( this.getClass(), projectName );
     }
 }

Added: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/TestFile.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/TestFile.java?rev=1227353&view=auto
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/TestFile.java (added)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/TestFile.java Wed Jan  4 22:18:44 2012
@@ -0,0 +1,69 @@
+package org.apache.maven.surefire.its.fixture;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+
+import static junit.framework.Assert.assertTrue;
+
+/**
+ * @author Kristian Rosenvold
+ */
+public class TestFile {
+
+    private final File file;
+
+    private final OutputValidator surefireVerifier;
+
+    public TestFile( File file, OutputValidator surefireVerifier ) {
+        this.file = file;
+        this.surefireVerifier = surefireVerifier;
+    }
+
+    public OutputValidator assertFileExists()
+    {
+        assertTrue( "File doesn't exist: " + file.getAbsolutePath(), file.exists() );
+        return surefireVerifier;
+    }
+
+    public void delete()
+    {
+        //noinspection ResultOfMethodCallIgnored
+        file.delete();
+    }
+
+    public String getAbsolutePath()
+    {
+        return file.getAbsolutePath();
+    }
+
+    public boolean exists()
+    {
+        return file.exists();
+    }
+
+    public FileInputStream getFileInputStream()
+        throws FileNotFoundException
+    {
+        return new FileInputStream( file );
+    }
+}

Propchange: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/TestFile.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/misc/Surefire740TruncatedCommaIT.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/misc/Surefire740TruncatedCommaIT.java?rev=1227353&r1=1227352&r2=1227353&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/misc/Surefire740TruncatedCommaIT.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/misc/Surefire740TruncatedCommaIT.java Wed Jan  4 22:18:44 2012
@@ -20,7 +20,7 @@ package org.apache.maven.surefire.its.mi
 
 
 import java.io.File;
-import org.apache.maven.surefire.its.SurefireVerifierTestClass;
+import org.apache.maven.surefire.its.fixture.SurefireVerifierTestClass;
 
 /**
  * Test Surefire-740 Truncated comma with non us locale

Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/misc/Surefire763EnvironmentForkModeIT.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/misc/Surefire763EnvironmentForkModeIT.java?rev=1227353&r1=1227352&r2=1227353&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/misc/Surefire763EnvironmentForkModeIT.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/misc/Surefire763EnvironmentForkModeIT.java Wed Jan  4 22:18:44 2012
@@ -19,7 +19,7 @@ package org.apache.maven.surefire.its.mi
  */
 
 
-import org.apache.maven.surefire.its.SurefireVerifierTestClass;
+import org.apache.maven.surefire.its.fixture.SurefireVerifierTestClass;
 
 /**
  * SUREFIRE-674 Asserts that the build fails when tests have errors

Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/misc/Surefire772BothReportsIT.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/misc/Surefire772BothReportsIT.java?rev=1227353&r1=1227352&r2=1227353&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/misc/Surefire772BothReportsIT.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/misc/Surefire772BothReportsIT.java Wed Jan  4 22:18:44 2012
@@ -20,7 +20,7 @@ package org.apache.maven.surefire.its.mi
 
 
 import org.apache.commons.io.FileUtils;
-import org.apache.maven.surefire.its.SurefireVerifierTestClass;
+import org.apache.maven.surefire.its.fixture.SurefireVerifierTestClass;
 
 import java.io.File;
 

Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/misc/Surefire772NoFailsafeReportsIT.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/misc/Surefire772NoFailsafeReportsIT.java?rev=1227353&r1=1227352&r2=1227353&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/misc/Surefire772NoFailsafeReportsIT.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/misc/Surefire772NoFailsafeReportsIT.java Wed Jan  4 22:18:44 2012
@@ -20,7 +20,7 @@ package org.apache.maven.surefire.its.mi
 
 
 import org.apache.commons.io.FileUtils;
-import org.apache.maven.surefire.its.SurefireVerifierTestClass;
+import org.apache.maven.surefire.its.fixture.SurefireVerifierTestClass;
 
 import java.io.File;
 

Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/misc/Surefire772NoSurefireReportsIT.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/misc/Surefire772NoSurefireReportsIT.java?rev=1227353&r1=1227352&r2=1227353&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/misc/Surefire772NoSurefireReportsIT.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/misc/Surefire772NoSurefireReportsIT.java Wed Jan  4 22:18:44 2012
@@ -20,7 +20,7 @@ package org.apache.maven.surefire.its.mi
 
 
 import org.apache.commons.io.FileUtils;
-import org.apache.maven.surefire.its.SurefireVerifierTestClass;
+import org.apache.maven.surefire.its.fixture.SurefireVerifierTestClass;
 
 import java.io.File;
 

Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/misc/Surefire772SpecifiedReportsIT.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/misc/Surefire772SpecifiedReportsIT.java?rev=1227353&r1=1227352&r2=1227353&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/misc/Surefire772SpecifiedReportsIT.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/misc/Surefire772SpecifiedReportsIT.java Wed Jan  4 22:18:44 2012
@@ -20,7 +20,7 @@ package org.apache.maven.surefire.its.mi
 
 
 import org.apache.commons.io.FileUtils;
-import org.apache.maven.surefire.its.SurefireVerifierTestClass;
+import org.apache.maven.surefire.its.fixture.SurefireVerifierTestClass;
 
 import java.io.File;