[Commented] (SUREFIRE-1372) Rerunning failing tests fails in combination with Description#createSuiteDescription

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[Commented] (SUREFIRE-1372) Rerunning failing tests fails in combination with Description#createSuiteDescription

JIRA jira@apache.org

    [ https://issues.apache.org/jira/browse/SUREFIRE-1372?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16163742#comment-16163742 ]

ASF GitHub Bot commented on SUREFIRE-1372:
------------------------------------------

Github user mpkorstanje commented on a diff in the pull request:

    https://github.com/apache/maven-surefire/pull/150#discussion_r138477890
 
    --- Diff: surefire-providers/common-junit48/src/main/java/org/apache/maven/surefire/common/junit48/MatchMethodDescriptions.java ---
    @@ -0,0 +1,74 @@
    +package org.apache.maven.surefire.common.junit48;
    +
    +/*
    + * 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.runner.Description;
    +import org.junit.runner.manipulation.Filter;
    +
    +import java.util.ArrayList;
    +import java.util.List;
    +
    +/**
    + * Only run test methods in the given failure set
    + *
    + * @author mpkorstanje
    + */
    +final class MatchMethodDescriptions
    +    extends Filter
    +{
    +
    +    private final List<Filter> filters = new ArrayList<Filter>();
    +
    +    MatchMethodDescriptions( Iterable<Description> descriptions )
    +    {
    +        for ( Description description : descriptions )
    +        {
    +            filters.add( matchMethodDescription ( description ) );
    +        }
    +    }
    +
    +    @Override
    +    public boolean shouldRun( Description description )
    +    {
    +        for ( Filter filter : filters )
    +        {
    +            if ( filter.shouldRun( description ) )
    +            {
    +                return true;
    +            }
    +        }
    +        return false;
    +    }
    +
    +    @Override
    +    public String describe()
    +    {
    +        StringBuilder description = new StringBuilder( "Matching description " );
    +        for ( int i = 0; i < filters.size(); i++ )
    +        {
    +            description.append( filters.get( i ).describe() );
    +            if ( i != filters.size() - 1 )
    +            {
    +                description.append( " OR " );
    +            }
    +        }
    +        return description.toString();
    +    }
    +}
    --- End diff --
   
    Done.


> Rerunning failing tests fails in combination with Description#createSuiteDescription
> ------------------------------------------------------------------------------------
>
>                 Key: SUREFIRE-1372
>                 URL: https://issues.apache.org/jira/browse/SUREFIRE-1372
>             Project: Maven Surefire
>          Issue Type: Bug
>          Components: Maven Surefire Plugin
>    Affects Versions: 2.20
>            Reporter: M.P. Korstanje
>            Assignee: Tibor Digana
>             Fix For: 2.20.2
>
>
> When using surefire to rerun failing tests created by a Runner that uses {noformat}Description#createSuiteDescription{noformat} with a human readable name rather then a class name the following stack trace occurs:
> {code}
> org.apache.maven.surefire.testset.TestSetFailedException: Unable to create test class 'Scenario: Fail when running'
>         at org.apache.maven.surefire.junit4.JUnit4Provider.executeFailedMethod(JUnit4Provider.java:385)
>         at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:292)
>         at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
>         at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:161)
> Caused by: java.lang.ClassNotFoundException: Scenario: Fail when running
>         at org.apache.maven.surefire.junit4.JUnit4Provider.executeFailedMethod(JUnit4Provider.java:379)
>         at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:292)
>         at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
>         at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:161)
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)