Return-Path: Delivered-To: apmail-maven-surefire-commits-archive@www.apache.org Received: (qmail 81437 invoked from network); 1 May 2008 22:30:39 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 1 May 2008 22:30:39 -0000 Received: (qmail 62388 invoked by uid 500); 1 May 2008 22:30:40 -0000 Delivered-To: apmail-maven-surefire-commits-archive@maven.apache.org Received: (qmail 62371 invoked by uid 500); 1 May 2008 22:30:40 -0000 Mailing-List: contact surefire-commits-help@maven.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: surefire-dev@maven.apache.org Delivered-To: mailing list surefire-commits@maven.apache.org Received: (qmail 62360 invoked by uid 99); 1 May 2008 22:30:40 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 01 May 2008 15:30:40 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 01 May 2008 22:30:04 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 41BF423889FF; Thu, 1 May 2008 15:30:18 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r652695 - 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/TestNgSuiteXmlSingleTest.java Date: Thu, 01 May 2008 22:30:17 -0000 To: surefire-commits@maven.apache.org From: dfabulich@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20080501223018.41BF423889FF@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: dfabulich Date: Thu May 1 15:30:17 2008 New Revision: 652695 URL: http://svn.apache.org/viewvc?rev=652695&view=rev Log: [SUREFIRE-492] Allow "test" parameter to override suiteXmlFiles Added: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TestNgSuiteXmlSingleTest.java Modified: maven/surefire/trunk/maven-surefire-plugin/src/main/java/org/apache/maven/plugin/surefire/SurefirePlugin.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=652695&r1=652694&r2=652695&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 Thu May 1 15:30:17 2008 @@ -180,11 +180,11 @@ private File testSourceDirectory; /** - * Specify this parameter to run individual tests by file name, overriding the includes - * and excludes parameters. Each pattern you specify here will be used to create an + * Specify this parameter to run individual tests by file name, overriding the includes/excludes + * parameters. Each pattern you specify here will be used to create an * include pattern formatted like **/${test}.java, so you can just type "-Dtest=MyTest" - * to run a single test called "foo/MyTest.java". This parameter is ignored if - * TestNG suiteXmlFiles are specified. + * to run a single test called "foo/MyTest.java". This parameter will override the TestNG suiteXmlFiles + * parameter. * * @parameter expression="${test}" */ @@ -383,8 +383,9 @@ private String excludedGroups; /** - * (TestNG only) List of TestNG suite xml file locations, seperated by commas. It should be noted that if suiteXmlFiles is - * specified, no other tests will be run, ignoring other parameters, like includes and excludes. + * (TestNG only) List of TestNG suite xml file locations, seperated by commas. Note that suiteXmlFiles is incompatible + * with several other parameters on this plugin, like includes/excludes. This parameter is ignored if + * the "test" parameter is specified (allowing you to run a single test instead of an entire suite). * * @parameter * @since 2.2 @@ -697,7 +698,7 @@ throw new MojoExecutionException( "Error to resolving surefire provider dependency: " + e.getMessage(), e ); } - if ( suiteXmlFiles != null && suiteXmlFiles.length > 0 ) + if ( suiteXmlFiles != null && suiteXmlFiles.length > 0 && test == null ) { if ( testNgArtifact == null ) { Added: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TestNgSuiteXmlSingleTest.java URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TestNgSuiteXmlSingleTest.java?rev=652695&view=auto ============================================================================== --- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TestNgSuiteXmlSingleTest.java (added) +++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TestNgSuiteXmlSingleTest.java Thu May 1 15:30:17 2008 @@ -0,0 +1,41 @@ +package org.apache.maven.surefire.its; + + +import junit.framework.TestCase; +import org.apache.maven.it.Verifier; +import org.apache.maven.it.util.ResourceExtractor; + +import java.io.File; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Set; + +/** + * Use -Dtest to run a single TestNG test, overriding the suite XML parameter. + * + * @author Dan Fabulich + * + */ +public class TestNgSuiteXmlSingleTest + extends TestCase +{ + public void testTestNGSuite() + throws Exception + { + File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/testng-twoTestCaseSuite" ); + + Verifier verifier = new Verifier( testDir.getAbsolutePath() ); + List goals = new ArrayList(); + goals.add( "test" ); + goals.add( "-Dtest=TestNGTestTwo" ); + verifier.executeGoals( goals ); + verifier.verifyErrorFreeLog(); + verifier.resetStreams(); + + List reports = HelperAssertions.extractReports( ( new File[] { testDir } ) ); + ITSuiteResults results = HelperAssertions.parseReportList( reports ); + HelperAssertions.assertTestSuiteResults( 1, 0, 0, 0, results ); + } + +}