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() );
+ }
}