Hi,

I have some thoughts about that...first as far as i can remember we had a discussion about the same subject a longer time ago...

Furthermore by definition a unit test is just a unit which is very small and should not have any relationships to anything outside (exception: mocking)...

So if a unit test fails it fails....this can't getting better if we simply repeat it...

So i think we are talking more about integration tests with some relationship to sourounding systems....where i can understand the idea...

which brings me to the patch...so that patch should be more related to the maven-failsafe-plugin than the maven-surefire-plugin......

After diving into that i have found a library on google code which already supports that for JUnit with an appropriate annotation which exactly does what you need (apart from the point that JUnit is unit test framework and NOT an integration test framework like TestNG, but this is a different story).

http://tempusfugitlibrary.org/

http://tempusfugitlibrary.org/documentation/junit/intermittent/


@RunWith(IntermittentTestRunner.class)
@Intermittent(repetition = 10)
public class IntermittentTestRunnerTest {

    private static int testCounter = 0;

    @Test
    public void annotatedTest() {
        testCounter++;
    }

    @Test
    public void anotherAnnotatedTest() {
        testCounter++;
    }

    @AfterClass
    public static void assertAnnotatedTestRunsMultipleTimes() {
        assertThat(testCounter, is(equalTo(20)));
    }

}

So this makes it much more cleared that you integration tests will run several times...

If you make a change on the level of maven-{surefire,failsafe}-plugin you will change it for all tests which means you have to handle things via includes/excludes which will make you pom very confusing...


From my point of view I don't see it to change surefire neither failsafe into this direction...may be the other dev's have different opinions.


Kind regards
Karl-Heinz Marbaise
On 6/24/14 10:48 PM, qingzhouluo wrote:
GitHub user qingzhouluo opened a pull request:

     https://github.com/apache/maven-surefire/pull/40

     Add rerunFailingTests option for maven surefire to rerun failing tests i...

     Add rerunFailingTests option for maven surefire to rerun failing tests 
immediately after they fail. Each single test method now maintains a list of 
its runs. DefaultReporterFactory now contains a few maps between test and the 
list of all its runs. If a test passes in any of its reruns, the build will be 
marked as successful and the test will count as flake.

You can merge this pull request into a Git repository by running:

     $ git pull https://github.com/qingzhouluo/maven-surefire master

Alternatively you can review and apply these changes as the patch at:

     https://github.com/apache/maven-surefire/pull/40.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

     This closes #40

----
commit 37b711b4bc244b9947b6ee9d37b1163eb8217262
Author: Qingzhou Luo <qingzhou...@google.com>
Date:   2014-06-24T20:44:44Z

     Add rerunFailingTests option for maven surefire to rerun failing tests 
immediately after they fail. Each single test method now maintains a list of 
its runs. DefaultReporterFactory now contains a few maps between test and the 
list of all its runs. If a test passes in any of its reruns, the build will be 
marked as successful and the test will count as flake.

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org

Reply via email to