Repository: maven-surefire
Updated Branches:
  refs/heads/master e29d4e979 -> 021b263ab


http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/021b263a/surefire-integration-tests/src/test/resources/surefire-1185/pom.xml
----------------------------------------------------------------------
diff --git 
a/surefire-integration-tests/src/test/resources/surefire-1185/pom.xml 
b/surefire-integration-tests/src/test/resources/surefire-1185/pom.xml
new file mode 100644
index 0000000..c7fac09
--- /dev/null
+++ b/surefire-integration-tests/src/test/resources/surefire-1185/pom.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements.  See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership.  The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License.  You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied.  See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.maven.surefire</groupId>
+    <artifactId>it-parent</artifactId>
+    <version>1.0</version>
+    <relativePath>../pom.xml</relativePath>
+  </parent>
+  <groupId>org.apache.maven.plugins.surefire</groupId>
+  <artifactId>jiras-surefire-1185</artifactId>
+  <version>1.0</version>
+  <url>http://maven.apache.org</url>
+  <developers>
+    <developer>
+      <id>tibordigana</id>
+      <name>Tibor Digaňa (tibor17)</name>
+      <email>tibordig...@apache.org</email>
+      <roles>
+        <role>PMC</role>
+      </roles>
+      <timezone>Europe/Bratislava</timezone>
+    </developer>
+  </developers>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>4.0</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <source>1.5</source>
+          <target>1.5</target>
+        </configuration>
+      </plugin>
+      <plugin>
+        <artifactId>maven-surefire-plugin</artifactId>
+               <dependencies>
+                       <dependency>
+                               <groupId>org.apache.maven.surefire</groupId>
+                               <artifactId>surefire-junit4</artifactId>
+                               <version>${surefire.version}</version>
+                       </dependency>
+               </dependencies>
+      </plugin>
+    </plugins>
+  </build>
+</project>

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/021b263a/surefire-integration-tests/src/test/resources/surefire-1185/src/test/java/pkg/RunningTest.java
----------------------------------------------------------------------
diff --git 
a/surefire-integration-tests/src/test/resources/surefire-1185/src/test/java/pkg/RunningTest.java
 
b/surefire-integration-tests/src/test/resources/surefire-1185/src/test/java/pkg/RunningTest.java
new file mode 100644
index 0000000..2469bd3
--- /dev/null
+++ 
b/surefire-integration-tests/src/test/resources/surefire-1185/src/test/java/pkg/RunningTest.java
@@ -0,0 +1,29 @@
+package pkg;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.junit.Test;
+
+public class RunningTest {
+    @Test
+    public void test()
+    {
+    }
+}

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/021b263a/surefire-integration-tests/src/test/resources/surefire-1185/src/test/java/pkg/UnlistedTest.java
----------------------------------------------------------------------
diff --git 
a/surefire-integration-tests/src/test/resources/surefire-1185/src/test/java/pkg/UnlistedTest.java
 
b/surefire-integration-tests/src/test/resources/surefire-1185/src/test/java/pkg/UnlistedTest.java
new file mode 100644
index 0000000..8348673
--- /dev/null
+++ 
b/surefire-integration-tests/src/test/resources/surefire-1185/src/test/java/pkg/UnlistedTest.java
@@ -0,0 +1,29 @@
+package pkg;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.junit.Test;
+
+public class UnlistedTest {
+    @Test
+    public void test()
+    {
+    }
+}

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/021b263a/surefire-providers/common-junit48/src/main/java/org/apache/maven/surefire/common/junit48/CombinedCategoryFilter.java
----------------------------------------------------------------------
diff --git 
a/surefire-providers/common-junit48/src/main/java/org/apache/maven/surefire/common/junit48/CombinedCategoryFilter.java
 
b/surefire-providers/common-junit48/src/main/java/org/apache/maven/surefire/common/junit48/CombinedCategoryFilter.java
index 9cd2131..aefc208 100644
--- 
a/surefire-providers/common-junit48/src/main/java/org/apache/maven/surefire/common/junit48/CombinedCategoryFilter.java
+++ 
b/surefire-providers/common-junit48/src/main/java/org/apache/maven/surefire/common/junit48/CombinedCategoryFilter.java
@@ -40,11 +40,11 @@ final class CombinedCategoryFilter
     @Override
     public boolean shouldRun( Description description )
     {
-        return ( includedFilters.isEmpty() || inOneOfFilters( includedFilters, 
description ) )
-            && ( excludedFilters.isEmpty() || !inOneOfFilters( 
excludedFilters, description ) );
+        return ( includedFilters.isEmpty() || anyFilterMatchesDescription( 
includedFilters, description ) )
+            && ( excludedFilters.isEmpty() || allFiltersMatchDescription( 
excludedFilters, description ) );
     }
 
-    private boolean inOneOfFilters( Collection<Filter> filters, Description 
description )
+    private boolean anyFilterMatchesDescription( Collection<Filter> filters, 
Description description )
     {
         for ( Filter f : filters )
         {
@@ -56,6 +56,18 @@ final class CombinedCategoryFilter
         return false;
     }
 
+    private boolean allFiltersMatchDescription( Collection<Filter> filters, 
Description description )
+    {
+        for ( Filter f : filters )
+        {
+            if ( !f.shouldRun( description ) )
+            {
+                return false;
+            }
+        }
+        return true;
+    }
+
     @Override
     public String describe()
     {

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/021b263a/surefire-providers/common-junit48/src/main/java/org/apache/maven/surefire/common/junit48/MethodFilter.java
----------------------------------------------------------------------
diff --git 
a/surefire-providers/common-junit48/src/main/java/org/apache/maven/surefire/common/junit48/MethodFilter.java
 
b/surefire-providers/common-junit48/src/main/java/org/apache/maven/surefire/common/junit48/MethodFilter.java
index 1af5679..a275634 100644
--- 
a/surefire-providers/common-junit48/src/main/java/org/apache/maven/surefire/common/junit48/MethodFilter.java
+++ 
b/surefire-providers/common-junit48/src/main/java/org/apache/maven/surefire/common/junit48/MethodFilter.java
@@ -43,11 +43,11 @@ final class MethodFilter
         Collection<Filter> excludedFilters = new LinkedHashSet<Filter>();
         for ( ResolvedTest test : testResolver.getIncludedPatterns() )
         {
-            includedFilters.add( new RequestedTest( test ) );
+            includedFilters.add( new RequestedTest( test, true ) );
         }
         for ( ResolvedTest test : testResolver.getExcludedPatterns() )
         {
-            excludedFilters.add( new RequestedTest( test ) );
+            excludedFilters.add( new RequestedTest( test, false ) );
         }
         combinedFilter = new CombinedCategoryFilter( includedFilters, 
excludedFilters );
     }

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/021b263a/surefire-providers/common-junit48/src/main/java/org/apache/maven/surefire/common/junit48/RequestedTest.java
----------------------------------------------------------------------
diff --git 
a/surefire-providers/common-junit48/src/main/java/org/apache/maven/surefire/common/junit48/RequestedTest.java
 
b/surefire-providers/common-junit48/src/main/java/org/apache/maven/surefire/common/junit48/RequestedTest.java
index 567db26..505df6e 100644
--- 
a/surefire-providers/common-junit48/src/main/java/org/apache/maven/surefire/common/junit48/RequestedTest.java
+++ 
b/surefire-providers/common-junit48/src/main/java/org/apache/maven/surefire/common/junit48/RequestedTest.java
@@ -29,10 +29,12 @@ final class RequestedTest
     private static final String CLASS_FILE_EXTENSION = ".class";
 
     private final ResolvedTest test;
+    private final boolean isPositiveFilter;
 
-    RequestedTest( ResolvedTest test )
+    RequestedTest( ResolvedTest test, boolean isPositiveFilter )
     {
         this.test = test;
+        this.isPositiveFilter = isPositiveFilter;
     }
 
     @Override
@@ -40,26 +42,35 @@ final class RequestedTest
     {
         Class<?> realTestClass = description.getTestClass();
         String methodName = description.getMethodName();
-        return realTestClass == null && methodName == null || test.shouldRun( 
classFile( realTestClass ), methodName );
+        if ( realTestClass == null && methodName == null )
+        {
+            return true;
+        }
+        else
+        {
+            String testClass = classFile( realTestClass );
+            return isPositiveFilter
+                ? test.matchAsInclusive( testClass, methodName )
+                : !test.matchAsExclusive( testClass, methodName );
+        }
     }
 
     @Override
     public String describe()
     {
-        final String classPattern = test.getTestClassPattern();
-        final String methodPattern = test.getTestMethodPattern();
-        String description = classPattern == null ? "" : classPattern;
-        if ( methodPattern != null )
-        {
-            description += "#" + methodPattern;
-        }
-        return description.length() == 0 ? "*" : description;
+        String description = test.toString();
+        return description == null || description.length() == 0 ? "*" : 
description;
     }
 
     @Override
     public boolean equals( Object o )
     {
-        return this == o || o != null && getClass() == o.getClass() && 
test.equals( ( (RequestedTest) o ).test );
+        return this == o || o != null && getClass() == o.getClass() && equals( 
(RequestedTest) o );
+    }
+
+    private boolean equals( RequestedTest o )
+    {
+        return isPositiveFilter == o.isPositiveFilter && test.equals( o.test );
     }
 
     @Override
@@ -70,6 +81,6 @@ final class RequestedTest
 
     private String classFile( Class<?> realTestClass )
     {
-        return realTestClass.getName().replace( '.', '/' ) + 
CLASS_FILE_EXTENSION;
+        return realTestClass == null ? null : realTestClass.getName().replace( 
'.', '/' ) + CLASS_FILE_EXTENSION;
     }
 }

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/021b263a/surefire-providers/common-junit48/src/test/java/org/apache/maven/surefire/common/junit48/FilterFactoryTest.java
----------------------------------------------------------------------
diff --git 
a/surefire-providers/common-junit48/src/test/java/org/apache/maven/surefire/common/junit48/FilterFactoryTest.java
 
b/surefire-providers/common-junit48/src/test/java/org/apache/maven/surefire/common/junit48/FilterFactoryTest.java
index f25f657..d3c280a 100644
--- 
a/surefire-providers/common-junit48/src/test/java/org/apache/maven/surefire/common/junit48/FilterFactoryTest.java
+++ 
b/surefire-providers/common-junit48/src/test/java/org/apache/maven/surefire/common/junit48/FilterFactoryTest.java
@@ -34,6 +34,7 @@ import org.junit.runner.manipulation.Filter;
 import java.io.File;
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.Collections;
 
 import static org.junit.runner.Description.createSuiteDescription;
 import static org.junit.runner.Description.createTestDescription;
@@ -191,7 +192,7 @@ public class FilterFactoryTest
         assertTrue( resolver.getExcludedPatterns().isEmpty() );
         assertTrue( resolver.getIncludedPatterns().isEmpty() );
         assertTrue( resolver.isEmpty() );
-        assertNull( resolver.getPluginParameterTest() );
+        assertEquals( 0, resolver.getPluginParameterTest().length() );
         assertFalse( resolver.hasExcludedMethodPatterns() );
         assertFalse( resolver.hasIncludedMethodPatterns() );
         assertFalse( resolver.hasMethodPatterns() );
@@ -204,7 +205,7 @@ public class FilterFactoryTest
         assertTrue( resolver.getExcludedPatterns().isEmpty() );
         assertTrue( resolver.getIncludedPatterns().isEmpty() );
         assertTrue( resolver.isEmpty() );
-        assertNull( resolver.getPluginParameterTest() );
+        assertEquals( 0, resolver.getPluginParameterTest().length() );
         assertFalse( resolver.hasExcludedMethodPatterns() );
         assertFalse( resolver.hasIncludedMethodPatterns() );
         assertFalse( resolver.hasMethodPatterns() );
@@ -641,10 +642,10 @@ public class FilterFactoryTest
     }
 
     @Test
-    public void testShouldNotNonExistingMethod()
+    public void testShouldRunSuiteWithIncludedMethod()
     {
         String sourceFile = "pkg" + File.separator + "XMyTest.class";
-        assertFalse( new TestListResolver( "#testMethod" ).shouldRun( 
sourceFile, null ) );
+        assertTrue( new TestListResolver( "#testMethod" ).shouldRun( 
sourceFile, null ) );
     }
 
     @Test
@@ -825,9 +826,9 @@ public class FilterFactoryTest
         Filter filter = createMethodFilter( "#nonExisting" );
         JUnitCore core = new JUnitCore();
         Result result = core.run( Request.classes( Suite.class ).filterWith( 
filter ) );
-        assertFalse( result.wasSuccessful() );
-        assertEquals( 1, result.getRunCount() );//running the Suite
-        assertEquals( 1, result.getFailureCount() );
+        assertTrue( result.wasSuccessful() );
+        assertEquals( 0, result.getRunCount() );//running the Suite
+        assertEquals( 0, result.getFailureCount() );
         assertEquals( 0, result.getIgnoreCount() );
     }
 
@@ -884,7 +885,7 @@ public class FilterFactoryTest
     public void testShouldRunSuite()
     {
         TestListResolver filter = new TestListResolver( "Su?te" );
-        filter = filter.createMethodFilters();
+        filter = TestListResolver.optionallyWildcardFilter( filter );
         JUnitCore core = new JUnitCore();
         Result result = core.run( Request.classes( Suite.class ).filterWith( 
new MethodFilter( filter ) ) );
         assertTrue( result.wasSuccessful() );
@@ -901,7 +902,7 @@ public class FilterFactoryTest
                                       + "PT#testC*, "
                                       + "!PT.java#testCY[?],"
                                       + 
"%regex[.*.tests.pt.PT.class#w.*|x.*T.*]" );
-        filter = filter.createMethodFilters();
+        filter = TestListResolver.optionallyWildcardFilter( filter );
         JUnitCore core = new JUnitCore();
         Result result = core.run( Request.classes( PT.class ).filterWith( new 
MethodFilter( filter ) ) );
         assertTrue( result.wasSuccessful() );
@@ -920,7 +921,7 @@ public class FilterFactoryTest
         // x12T35[0], x12T35[1]
         TestListResolver filter =
             new TestListResolver( "%regex[.*.PT.* # 
w.*|x(\\d+)T(\\d+)\\[(\\d+)\\]]" );
-        filter = filter.createMethodFilters();
+        filter = TestListResolver.optionallyWildcardFilter( filter );
         JUnitCore core = new JUnitCore();
         Result result = core.run( Request.classes( PT.class ).filterWith( new 
MethodFilter( filter ) ) );
         assertTrue( result.wasSuccessful() );
@@ -998,7 +999,7 @@ public class FilterFactoryTest
     public void testIncludesExcludes()
     {
         Collection<String> inc = Arrays.asList( 
"**/NotIncludedByDefault.java", "**/*Test.java" );
-        Collection<String> exc = Arrays.asList( "**/DontRunTest.*" );
+        Collection<String> exc = Collections.singletonList( "**/DontRunTest.*" 
);
         TestListResolver resolver = new TestListResolver( inc, exc );
         assertFalse( resolver.shouldRun( "org/test/DontRunTest.class", null ) 
);
         assertTrue( resolver.shouldRun( "org/test/DefaultTest.class", null ) );

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/021b263a/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4Provider.java
----------------------------------------------------------------------
diff --git 
a/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4Provider.java
 
b/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4Provider.java
index 5a3bdf6..948d514 100644
--- 
a/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4Provider.java
+++ 
b/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4Provider.java
@@ -62,6 +62,7 @@ import static 
org.apache.maven.surefire.common.junit4.JUnit4RunListener.rethrowA
 import static 
org.apache.maven.surefire.common.junit4.JUnit4RunListenerFactory.createCustomListeners;
 import static 
org.apache.maven.surefire.report.ConsoleOutputCapture.startCapture;
 import static org.apache.maven.surefire.report.SimpleReportEntry.withException;
+import static 
org.apache.maven.surefire.testset.TestListResolver.optionallyWildcardFilter;
 import static 
org.apache.maven.surefire.testset.TestListResolver.toClassFileName;
 import static org.apache.maven.surefire.util.TestsToRun.fromClass;
 import static org.junit.runner.Request.aClass;
@@ -421,7 +422,7 @@ public class JUnit4Provider
     private class TestResolverFilter
         extends Filter
     {
-        private final TestListResolver methodFilter = 
JUnit4Provider.this.testResolver.createMethodFilters();
+        private final TestListResolver methodFilter = 
optionallyWildcardFilter( JUnit4Provider.this.testResolver );
 
         @Override
         public boolean shouldRun( Description description )

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/021b263a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java
----------------------------------------------------------------------
diff --git 
a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java
 
b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java
index 9d03a85..f2fa49f 100644
--- 
a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java
+++ 
b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java
@@ -54,6 +54,7 @@ import static java.util.Collections.unmodifiableCollection;
 import static 
org.apache.maven.surefire.common.junit4.JUnit4ProviderUtil.generateFailingTests;
 import static 
org.apache.maven.surefire.common.junit4.JUnit4RunListenerFactory.createCustomListeners;
 import static 
org.apache.maven.surefire.junitcore.ConcurrentRunListener.createInstance;
+import static 
org.apache.maven.surefire.testset.TestListResolver.optionallyWildcardFilter;
 
 /**
  * @author Kristian Rosenvold
@@ -272,8 +273,8 @@ public class JUnitCoreProvider
     {
         final FilterFactory factory = new FilterFactory( testClassLoader );
         Filter groupFilter = factory.createGroupFilter( 
providerParameters.getProviderProperties() );
-        TestListResolver methodFilter = createMethodFilter();
-        boolean onlyGroups = methodFilter == null || methodFilter.isEmpty();
+        TestListResolver methodFilter = optionallyWildcardFilter( testResolver 
);
+        boolean onlyGroups = methodFilter.isEmpty() || 
methodFilter.isWildcard();
         return onlyGroups ? groupFilter : factory.and( groupFilter, 
factory.createMethodFilter( methodFilter ) );
     }
 
@@ -282,9 +283,4 @@ public class JUnitCoreProvider
         TestsToRun scanned = scanResult.applyFilter( scannerFilter, 
testClassLoader );
         return runOrderCalculator.orderTestClasses( scanned );
     }
-
-    private TestListResolver createMethodFilter()
-    {
-        return testResolver == null ? null : 
testResolver.createMethodFilters();
-    }
 }

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/021b263a/surefire-providers/surefire-testng-utils/src/main/java/org/apache/maven/surefire/testng/utils/MethodSelector.java
----------------------------------------------------------------------
diff --git 
a/surefire-providers/surefire-testng-utils/src/main/java/org/apache/maven/surefire/testng/utils/MethodSelector.java
 
b/surefire-providers/surefire-testng-utils/src/main/java/org/apache/maven/surefire/testng/utils/MethodSelector.java
index cdb53f0..9c601bb 100644
--- 
a/surefire-providers/surefire-testng-utils/src/main/java/org/apache/maven/surefire/testng/utils/MethodSelector.java
+++ 
b/surefire-providers/surefire-testng-utils/src/main/java/org/apache/maven/surefire/testng/utils/MethodSelector.java
@@ -36,7 +36,7 @@ import org.testng.ITestNGMethod;
 public class MethodSelector
     implements IMethodSelector
 {
-    private static TestListResolver testListResolver = null;
+    private static volatile TestListResolver testListResolver = null;
 
     public void setTestMethods( List arg0 )
     {
@@ -59,7 +59,7 @@ public class MethodSelector
 
     private static boolean shouldRun( ITestNGMethod test )
     {
-        TestListResolver resolver = MethodSelector.testListResolver;
+        TestListResolver resolver = testListResolver;
         boolean hasTestResolver = resolver != null && !resolver.isEmpty();
         return hasTestResolver && resolver.shouldRun( test.getRealClass(), 
test.getMethodName() );
     }

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/021b263a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGProvider.java
----------------------------------------------------------------------
diff --git 
a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGProvider.java
 
b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGProvider.java
index 6faf033..75d8463 100644
--- 
a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGProvider.java
+++ 
b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGProvider.java
@@ -41,6 +41,8 @@ import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 
+import static 
org.apache.maven.surefire.testset.TestListResolver.optionallyWildcardFilter;
+
 /**
  * @author Kristian Rosenvold
  * @noinspection UnusedDeclaration
@@ -203,7 +205,7 @@ public class TestNGProvider
     private TestNGDirectoryTestSuite newDirectorySuite()
     {
         return new TestNGDirectoryTestSuite( 
testRequest.getTestSourceDirectory().toString(), providerProperties,
-                                             
reporterConfiguration.getReportsDirectory(), createMethodFilter(),
+                                             
reporterConfiguration.getReportsDirectory(), getTestFilter(),
                                              runOrderCalculator, scanResult, 
mainCliOptions,
                                              getSkipAfterFailureCount() );
     }
@@ -245,13 +247,13 @@ public class TestNGProvider
 
     private boolean hasSpecificTests()
     {
-        TestListResolver tests = testRequest.getTestListResolver();
-        return tests != null && !tests.isEmpty();
+        TestListResolver specificTestPatterns = 
testRequest.getTestListResolver();
+        return !specificTestPatterns.isEmpty() && 
!specificTestPatterns.isWildcard();
     }
 
-    private TestListResolver createMethodFilter()
+    private TestListResolver getTestFilter()
     {
-        TestListResolver tests = testRequest.getTestListResolver();
-        return tests == null ? null : tests.createMethodFilters();
+        TestListResolver filter = optionallyWildcardFilter( 
testRequest.getTestListResolver() );
+        return filter.isWildcard() ? TestListResolver.getEmpty() : filter;
     }
 }

Reply via email to