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/06 01:24:36 UTC

svn commit: r1227906 [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/fixture/OutputValidator.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/OutputValidator.java?rev=1227906&r1=1227905&r2=1227906&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/OutputValidator.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/OutputValidator.java Fri Jan  6 00:24:34 2012
@@ -84,20 +84,46 @@ public class OutputValidator
     }
 
     public OutputValidator verifyTextInLog( String text )
-        throws VerificationException
     {
-        verifier.verifyTextInLog( text );
+        try
+        {
+            verifier.verifyTextInLog( text );
+        }
+        catch ( VerificationException e )
+        {
+            throw new SurefireVerifierException( e );
+        }
         return this;
     }
 
 
     public OutputValidator verifyErrorFreeLog()
-        throws VerificationException
     {
-        verifier.verifyErrorFreeLog();
+        try
+        {
+            verifier.verifyErrorFreeLog();
+        }
+        catch ( VerificationException e )
+        {
+            throw new SurefireVerifierException( e );
+        }
         return this;
     }
 
+    public OutputValidator verifyErrorFree(int total)
+    {
+        try
+        {
+            verifier.verifyErrorFreeLog();
+            this.assertTestSuiteResults( total, 0, 0, 0 );
+            return this;
+        }
+        catch ( VerificationException e )
+        {
+            throw new SurefireVerifierException( e );
+        }
+    }
+
     public List loadFile( String basedir, String filename, boolean hasCommand )
         throws VerificationException
     {
@@ -105,10 +131,16 @@ public class OutputValidator
     }
 
     public List<String> loadFile( File file, boolean hasCommand )
-        throws VerificationException
     {
         //noinspection unchecked
-        return verifier.loadFile( file, hasCommand );
+        try
+        {
+            return verifier.loadFile( file, hasCommand );
+        }
+        catch ( VerificationException e )
+        {
+            throw new SurefireVerifierException( e );
+        }
     }
 
     public String getLogFileName()
@@ -159,6 +191,21 @@ public class OutputValidator
         return new TestFile(new File( targetDir, fileName ), this);
     }
 
+
+    public TestFile getSurefireReportsFile( String fileName )
+    {
+        File targetDir = getSubFile( "target/surefire-reports" );
+        return new TestFile(new File( targetDir, fileName ), this);
+    }
+
+    public TestFile getSiteFile( String fileName )
+    {
+        File targetDir = getSubFile( "target/site" );
+        return new TestFile(new File( targetDir, fileName ), this);
+    }
+
+
+
     public File getBaseDir()
     {
         return baseDir;

Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/SurefireLauncher.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/SurefireLauncher.java?rev=1227906&r1=1227905&r2=1227906&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/SurefireLauncher.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/SurefireLauncher.java Fri Jan  6 00:24:34 2012
@@ -189,6 +189,12 @@ public class SurefireLauncher
         verifier.assertFileNotPresent( file.getAbsolutePath() );
     }
 
+    public SurefireLauncher assertNotPresent( String subFile )
+    {
+        verifier.assertFileNotPresent( surefireVerifier.getSubFile( subFile ).getAbsolutePath());
+        return this;
+    }
+    
     public SurefireLauncher showErrorStackTraces()
     {
         cliOptions.add( "-e" );
@@ -207,6 +213,11 @@ public class SurefireLauncher
         return this;
 
     }
+
+    public SurefireLauncher skipClean(){
+        goals.add( "-Dclean.skip=true" );
+        return this;
+    }
     
     public SurefireLauncher groups(String groups){
         goals.add( "-Dgroups=" + groups );
@@ -221,7 +232,6 @@ public class SurefireLauncher
     }
 
     public OutputValidator executeTest()
-        throws VerificationException
     {
         return execute( "test" );
     }
@@ -236,7 +246,7 @@ public class SurefireLauncher
     {
         try {
             execute( "test" );
-        } catch (VerificationException ignore) {
+        } catch (SurefireVerifierException ignore) {
             return surefireVerifier;
         }
         throw new RuntimeException( "Expecting build failure, got none!" );
@@ -249,15 +259,23 @@ public class SurefireLauncher
     }
 
     private OutputValidator execute( String goal )
-        throws VerificationException
     {
         addGoal( goal );
+        return executeCurrentGoals();
+    }
+
+    public OutputValidator executeCurrentGoals()
+    {
         verifier.setCliOptions( cliOptions );
         try
         {
             verifier.executeGoals( goals, envvars );
             return surefireVerifier;
         }
+        catch ( VerificationException e )
+        {
+            throw new SurefireVerifierException( e );
+        }
         finally
         {
             verifier.resetStreams();
@@ -457,6 +475,11 @@ public class SurefireLauncher
     {
         return addGoal( "-D" + variable + "=" + value );
     }
+    
+    public SurefireLauncher setJUnitVersion(String version){
+        addD( "junit.version", version);
+        return this;
+    }
 
     public SurefireLauncher setGroups( String groups )
     {
@@ -483,4 +506,36 @@ public class SurefireLauncher
     public File getUnpackLocation(){
         return new File(verifier.getBasedir());
     }
+
+    public SurefireLauncher addFailsafeReportOnlyGoal()
+        throws VerificationException
+    {
+        goals.add( "org.apache.maven.plugins:maven-surefire-report-plugin:" + getSurefireVersion() + ":failsafe-report-only");
+        return this;
+    }
+
+    public SurefireLauncher addSurefireReportGoal()
+    {
+        goals.add( "org.apache.maven.plugins:maven-surefire-report-plugin:" + getSurefireVersion() + ":report");
+        return this;
+    }
+
+    public SurefireLauncher addSurefireReportOnlyGoal()
+    {
+        goals.add( "org.apache.maven.plugins:maven-surefire-report-plugin:" + getSurefireVersion() + ":report-only");
+        return this;
+    }
+
+    
+    public void deleteSiteDir()
+        throws IOException
+    {
+        FileUtils.deleteDirectory(  surefireVerifier.getSubFile( "site" ));
+    }
+
+    public SurefireLauncher setTestToRun( String basicTest )
+    {
+        addD( "test", basicTest);
+        return this;
+    }
 }

Copied: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/SurefireVerifierException.java (from r1227727, maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TestNgTestSingleMethodIT.java)
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/SurefireVerifierException.java?p2=maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/SurefireVerifierException.java&p1=maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TestNgTestSingleMethodIT.java&r1=1227727&r2=1227906&rev=1227906&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TestNgTestSingleMethodIT.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/SurefireVerifierException.java Fri Jan  6 00:24:34 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
@@ -20,16 +20,12 @@ package org.apache.maven.surefire.its;
  */
 
 /**
- * Test project using -Dtest=mtClass#myMethod
- *
- * @author <a href="mailto:olamy@apache.org">Olivier Lamy</a>
+ * @author Kristian Rosenvold
  */
-public class TestNgTestSingleMethodIT
-    extends AbstractTestSingleMethod
+public class SurefireVerifierException extends RuntimeException
 {
-    public TestNgTestSingleMethodIT()
+    public SurefireVerifierException( Throwable cause )
     {
-        super( "/testng-single-method" );
+        super( cause );
     }
-
 }

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

Propchange: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/SurefireVerifierException.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/SurefireVerifierTestClass2.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/SurefireVerifierTestClass2.java?rev=1227906&r1=1227905&r2=1227906&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/SurefireVerifierTestClass2.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/SurefireVerifierTestClass2.java Fri Jan  6 00:24:34 2012
@@ -37,9 +37,23 @@ import junit.framework.TestCase;
 public abstract class SurefireVerifierTestClass2
     extends TestCase
 {
+    public OutputValidator executeErrorFreeTest( String sourceName, int total ){
+        return unpack( sourceName ).executeTest().verifyErrorFree( total );
+    }
+
     public SurefireLauncher unpack( String sourceName )
-        throws VerificationException, IOException
     {
-        return new SurefireLauncher( this.getClass(), sourceName );
+        try
+        {
+            return new SurefireLauncher( this.getClass(), sourceName );
+        }
+        catch ( VerificationException e )
+        {
+            throw new SurefireVerifierException( e );
+        }
+        catch ( IOException e )
+        {
+            throw new SurefireVerifierException( e );
+        }
     }
 }

Modified: 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=1227906&r1=1227905&r2=1227906&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/TestFile.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/TestFile.java Fri Jan  6 00:24:34 2012
@@ -25,19 +25,26 @@ import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.FileReader;
 import java.io.IOException;
+import java.util.List;
+
+import org.apache.commons.io.FileUtils;
+
+import junit.framework.Assert;
 
 import static junit.framework.Assert.assertTrue;
 
 /**
  * @author Kristian Rosenvold
  */
-public class TestFile {
+public class TestFile
+{
 
     private final File file;
 
     private final OutputValidator surefireVerifier;
 
-    public TestFile( File file, OutputValidator surefireVerifier ) {
+    public TestFile( File file, OutputValidator surefireVerifier )
+    {
         this.file = file;
         this.surefireVerifier = surefireVerifier;
     }
@@ -48,6 +55,12 @@ public class TestFile {
         return surefireVerifier;
     }
 
+    public OutputValidator assertFileNotExists()
+    {
+        assertTrue( "File doesn't exist: " + file.getAbsolutePath(), !file.exists() );
+        return surefireVerifier;
+    }
+
     public void delete()
     {
         //noinspection ResultOfMethodCallIgnored
@@ -71,16 +84,53 @@ public class TestFile {
     }
 
     public String slurpFile()
-        throws IOException
     {
-        StringBuilder sb = new StringBuilder();
-        BufferedReader reader = new BufferedReader( new FileReader( file ) );
-        for ( String line = reader.readLine(); line != null; line = reader.readLine() )
+        try
+        {
+            StringBuilder sb = new StringBuilder();
+            BufferedReader reader = null;
+            reader = new BufferedReader( new FileReader( file ) );
+            for ( String line = reader.readLine(); line != null; line = reader.readLine() )
+            {
+                sb.append( line );
+            }
+            reader.close();
+            return sb.toString();
+        }
+        catch ( IOException e )
+        {
+            throw new SurefireVerifierException( e );
+        }
+
+    }
+
+    public String readFileToString(){
+        try
+        {
+            return FileUtils.readFileToString(file);
+        }
+        catch ( IOException e )
+        {
+            throw new SurefireVerifierException( e );
+        }
+    }
+
+    public boolean isFile()
+    {
+        return file.isFile();
+    }
+
+    public void assertContainsText( String text )
+    {
+        final List<String> list = surefireVerifier.loadFile( file, false );
+        for ( String line : list )
         {
-            sb.append( line );
+            if ( line.contains( text ) )
+            {
+                return;
+            }
         }
-        reader.close();
-        return sb.toString();
+        Assert.fail( "Did not find expected message in log" );
     }
 
 }

Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/misc/HelperAssertions.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/misc/HelperAssertions.java?rev=1227906&r1=1227905&r2=1227906&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/misc/HelperAssertions.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/misc/HelperAssertions.java Fri Jan  6 00:24:34 2012
@@ -21,7 +21,7 @@ package org.apache.maven.surefire.its.mi
 import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
-import org.apache.maven.surefire.its.IntegrationTestSuiteResults;
+import org.apache.maven.surefire.its.fixture.IntegrationTestSuiteResults;
 
 import junit.framework.Assert;
 

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=1227906&r1=1227905&r2=1227906&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 Fri Jan  6 00:24:34 2012
@@ -19,10 +19,12 @@ package org.apache.maven.surefire.its.mi
  */
 
 
-import org.apache.commons.io.FileUtils;
-import org.apache.maven.surefire.its.fixture.SurefireVerifierTestClass;
-
-import java.io.File;
+import java.io.IOException;
+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 Surefire-740 Truncated comma with non us locale
@@ -30,93 +32,73 @@ import java.io.File;
  * @author Kristian Rosenvold
  */
 public class Surefire772NoFailsafeReportsIT
-    extends SurefireVerifierTestClass
+    extends SurefireVerifierTestClass2
 {
 
-    public Surefire772NoFailsafeReportsIT()
-    {
-        super( "/surefire-772-no-failsafe-reports" );
-    }
-
-    @Override
-    protected void setUp()
-        throws Exception
-    {
-        super.setUp();
-        FileUtils.deleteDirectory( getTargetFile( "site" ) );
-        addGoal( "-Dclean.skip=true" );
-    }
-
     public void testReportGeneration()
         throws Exception
     {
-        failNever();
-        addGoal( getFailsafeReportOnlyGoal() );
-        assertFalse( "Expecting not site directory", getTargetFile( "site" ).isDirectory() );
-        execute( getSurefireReportOnlyGoal() );
+        final OutputValidator site = unpack().addFailsafeReportOnlyGoal().addSurefireReportOnlyGoal().executeCurrentGoals();
 
-        File siteFile = getSiteFile( "surefire-report.html" );
-        System.out.println( "siteFile.getAbsolutePath() = " + siteFile.getAbsolutePath() );
-        assertTrue( "Expecting surefire report file", siteFile.isFile() );
-
-        siteFile = getSiteFile( "failsafe-report.html" );
-        System.out.println( "siteFile.getAbsolutePath() = " + siteFile.getAbsolutePath() );
-        assertFalse( "Expecting no failsafe report file", siteFile.isFile() );
+        assertSurefireReportPresent( site );
+        assertNoFailsefeReport( site );
     }
 
+
     public void testSkippedFailsafeReportGeneration()
         throws Exception
     {
-        failNever();
-        activateProfile( "skipFailsafe" );
-        addGoal( getFailsafeReportOnlyGoal() );
-        assertFalse( "Expecting not site directory", getTargetFile( "site" ).isDirectory() );
-        execute( getSurefireReportOnlyGoal() );
+        final OutputValidator validator =
+            unpack().activateProfile( "skipFailsafe" ).addFailsafeReportOnlyGoal().addSurefireReportOnlyGoal().executeCurrentGoals();
+        assertSurefireReportPresent( validator );
+        assertNoFailsefeReport( validator );
 
-        File siteFile = getSiteFile( "surefire-report.html" );
-        System.out.println( "siteFile.getAbsolutePath() = " + siteFile.getAbsolutePath() );
-        assertTrue( "Expecting surefire report file", siteFile.isFile() );
-
-        siteFile = getSiteFile( "failsafe-report.html" );
-        System.out.println( "siteFile.getAbsolutePath() = " + siteFile.getAbsolutePath() );
-        assertFalse( "Expecting no failsafe report file", siteFile.isFile() );
     }
 
     public void testForcedFailsafeReportGeneration()
         throws Exception
     {
-        failNever();
-        activateProfile( "forceFailsafe" );
-        addGoal( getFailsafeReportOnlyGoal() );
-        assertFalse( "Expecting not site directory", getTargetFile( "site" ).isDirectory() );
-        execute( getSurefireReportOnlyGoal() );
-
-        File siteFile = getSiteFile( "surefire-report.html" );
-        System.out.println( "siteFile.getAbsolutePath() = " + siteFile.getAbsolutePath() );
-        assertTrue( "Expecting surefire report file", siteFile.isFile() );
-
-        siteFile = getSiteFile( "failsafe-report.html" );
-        System.out.println( "siteFile.getAbsolutePath() = " + siteFile.getAbsolutePath() );
-        assertTrue( "Expecting failsafe report file", siteFile.isFile() );
+        final OutputValidator validator =
+            unpack().activateProfile( "forceFailsafe" ).addFailsafeReportOnlyGoal().addSurefireReportOnlyGoal().executeCurrentGoals();
+        assertSurefireReportPresent( validator );
+        assertFailsafeReport( validator );
     }
 
     public void testSkipForcedFailsafeReportGeneration()
         throws Exception
     {
-        failNever();
-        activateProfile( "forceFailsafe" );
-        activateProfile( "skipFailsafe" );
-        addGoal( getFailsafeReportOnlyGoal() );
-        assertFalse( "Expecting not site directory", getTargetFile( "site" ).isDirectory() );
-        execute( getSurefireReportOnlyGoal() );
+        final OutputValidator validator =
+            unpack().activateProfile( "forceFailsafe" ).activateProfile( "skipFailsafe" )
+                .addFailsafeReportOnlyGoal().addSurefireReportOnlyGoal().executeCurrentGoals();
 
-        File siteFile = getSiteFile( "surefire-report.html" );
-        System.out.println( "siteFile.getAbsolutePath() = " + siteFile.getAbsolutePath() );
-        assertTrue( "Expecting surefire report file", siteFile.isFile() );
+        assertSurefireReportPresent( validator );
+        assertNoFailsefeReport( validator );
+    }
 
-        siteFile = getSiteFile( "failsafe-report.html" );
-        System.out.println( "siteFile.getAbsolutePath() = " + siteFile.getAbsolutePath() );
+    private void assertNoFailsefeReport( OutputValidator site )
+    {
+        TestFile siteFile = site.getSiteFile( "failsafe-report.html" );
         assertFalse( "Expecting no failsafe report file", siteFile.isFile() );
     }
+    private void assertFailsafeReport( OutputValidator site )
+    {
+        TestFile siteFile = site.getSiteFile( "failsafe-report.html" );
+        assertTrue( "Expecting no failsafe report file", siteFile.isFile() );
+    }
+
+    private void assertSurefireReportPresent( OutputValidator site )
+    {
+        TestFile siteFile = site.getSiteFile( "surefire-report.html" );
+        assertTrue( "Expecting surefire report file", siteFile.isFile() );
+    }
+
+    private SurefireLauncher unpack()
+        throws VerificationException, IOException
+    {
+        final SurefireLauncher unpack = unpack( "surefire-772-no-failsafe-reports" );
+        unpack.deleteSiteDir();
+        return unpack.skipClean().failNever().assertNotPresent( "site" );
+    }
+
 
 }