You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Qingzhou Luo (JIRA)" <ji...@codehaus.org> on 2014/07/31 02:24:10 UTC

[jira] (SUREFIRE-1087) New option rerunFailingTestsCount

Qingzhou Luo created SUREFIRE-1087:
--------------------------------------

             Summary: New option rerunFailingTestsCount
                 Key: SUREFIRE-1087
                 URL: https://jira.codehaus.org/browse/SUREFIRE-1087
             Project: Maven Surefire
          Issue Type: New Feature
            Reporter: Qingzhou Luo


Pull Request 40:
https://github.com/apache/maven-surefire/pull/40
    
Add rerunFailingTestsCount option for maven surefire to rerun failing tests immediately after they fail.
    
    When rerunFailingTestsCount is set to  a value k larger than 0, a failing test will get re-run
    up to k times until it passes. If a test passes in any of its reruns,
    the build will be marked as successful and the test will count as a
    flake (or flaky test). If it fails all those k times then it will
    still be marked as a failed test.
    
    In the console output all the flaky tests will be count as "Flakes:
    N". The generated test report XML file is augmented with additional
    information, while still being compatible with existing consumers
    (such as Jenkins). A flaky test will have <flakyFailure> or/and
    <flakyError> under its <testcase> element, to store all the flaky
    runs' information (such as output, stackTrace). So existing consumers
    will still consider it as a passing test, while potential future
    consumers can parse those flaky runs information. A failing test will
    still have <failure> or <error> under <testcase>, but all the
    subsequent re-run information will be stored under <rerunFailure> or
    <rerunError>. So existing consumers will still be able to see it's a
    failed test and parse its failure information, and potential future
    consumers will be able to get all the flaky runs.
    
    It is implemented by keeping a map between test full class name and a
    map between all its test methods and the list of runs. It also takes
    into account Fork and Parallel and have them covered by integration
    tests.
    
    Currently only supports JUnit4.x



--
This message was sent by Atlassian JIRA
(v6.1.6#6162)