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:[email protected]">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" ); + } + }
