You are viewing a plain text version of this content. The canonical link for it is here.
Posted to surefire-commits@maven.apache.org by df...@apache.org on 2007/12/19 22:09:49 UTC

svn commit: r605699 - in /maven/surefire/trunk: maven-surefire-plugin/src/main/java/org/apache/maven/plugin/surefire/SurefirePlugin.java surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TestSingleTest.java

Author: dfabulich
Date: Wed Dec 19 13:09:48 2007
New Revision: 605699

URL: http://svn.apache.org/viewvc?rev=605699&view=rev
Log:
[SUREFIRE-411] Allow users to set -Dtest=SingleTest -DfailIfNoTests=false, to run a single test in a reactor build.

Modified:
    maven/surefire/trunk/maven-surefire-plugin/src/main/java/org/apache/maven/plugin/surefire/SurefirePlugin.java
    maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TestSingleTest.java

Modified: maven/surefire/trunk/maven-surefire-plugin/src/main/java/org/apache/maven/plugin/surefire/SurefirePlugin.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-plugin/src/main/java/org/apache/maven/plugin/surefire/SurefirePlugin.java?rev=605699&r1=605698&r2=605699&view=diff
==============================================================================
--- maven/surefire/trunk/maven-surefire-plugin/src/main/java/org/apache/maven/plugin/surefire/SurefirePlugin.java (original)
+++ maven/surefire/trunk/maven-surefire-plugin/src/main/java/org/apache/maven/plugin/surefire/SurefirePlugin.java Wed Dec 19 13:09:48 2007
@@ -263,11 +263,11 @@
     private boolean redirectTestOutputToFile;
 
     /**
-     * Set this to "true" to cause a failure if there are no tests to run.
+     * Set this to "true" to cause a failure if there are no tests to run. Defaults to false.
      * 
-     * @parameter expression="${failIfNoTests}" default-value="false"
+     * @parameter expression="${failIfNoTests}"
      */
-    private boolean failIfNoTests;
+    private Boolean failIfNoTests;
     
     /**
      * Option to specify the forking mode. Can be "never", "once" or "always". "none" and "pertest" are also accepted
@@ -489,9 +489,9 @@
             
             if ( result == SurefireBooter.NO_TESTS_EXIT_CODE )
             {
-                if ( !failIfNoTests ) return;
+                if ( ( failIfNoTests == null ) || !failIfNoTests.booleanValue() ) return;
                 // TODO: i18n
-                throw new MojoFailureException( "No tests were executed!" );
+                throw new MojoFailureException( "No tests were executed!  (Set -DfailIfNoTests=false to ignore this error.)" );
             } else {
                 // TODO: i18n
                 msg = "There are test failures.\n\nPlease refer to " + reportsDirectory + " for the individual test results.";
@@ -520,7 +520,7 @@
 
         if ( !testClassesDirectory.exists() )
         {
-            if ( failIfNoTests )
+            if ( failIfNoTests != null && failIfNoTests.booleanValue() )
             {
                 throw new MojoFailureException( "No tests to run!" );
             }
@@ -670,8 +670,11 @@
                 includes = new ArrayList();
 
                 excludes = new ArrayList();
-                
-                failIfNoTests = true;
+
+                if ( failIfNoTests == null )
+                {
+                    failIfNoTests = Boolean.TRUE;
+                }
 
                 String[] testRegexes = StringUtils.split( test, "," );
 
@@ -840,8 +843,8 @@
                 }
             }
         }
-        
-        surefireBooter.setFailIfNoTests( failIfNoTests );
+
+        surefireBooter.setFailIfNoTests( failIfNoTests == null ? false : failIfNoTests.booleanValue() );
         
         surefireBooter.setForkedProcessTimeoutInSeconds( forkedProcessTimeoutInSeconds );
 

Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TestSingleTest.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TestSingleTest.java?rev=605699&r1=605698&r2=605699&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TestSingleTest.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TestSingleTest.java Wed Dec 19 13:09:48 2007
@@ -78,5 +78,23 @@
         File reportsDir = new File( testDir, "target/surefire-reports" );
         assertFalse ( "Unexpected reports directory", reportsDir.exists() );
     }
-    
+
+    public void testSingleTestNonExistentOverride()
+        throws Exception
+    {
+        File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/default-configuration" );
+
+        Verifier verifier = new Verifier( testDir.getAbsolutePath() );
+        List goals = new ArrayList();
+        goals.add( "test" );
+        goals.add( "-Dtest=DoesNotExist" );
+        goals.add( "-DfailIfNoTests=false" );
+        verifier.executeGoals( goals );
+
+        verifier.verifyErrorFreeLog();
+        verifier.resetStreams();
+
+        File reportsDir = new File( testDir, "target/surefire-reports" );
+        assertFalse ( "Unexpected reports directory", reportsDir.exists() );
+    }
 }