The order should be random to ferret out issues but the test order seed should be printed and configurable so it allows replaying a test run because you can specify the order in which it should execute.
I don't like having a strict order since it hides poorly written tests and people have a tendency to just work around the poorly written test instead of fixing it. On Tue, Jan 30, 2018 at 9:13 AM, Kenneth Knowles <k...@google.com> wrote: > What was the problem in this case? > > On Tue, Jan 30, 2018 at 9:12 AM, Romain Manni-Bucau <rmannibu...@gmail.com > > wrote: > >> What I was used to do is to capture the output when I identified some of >> these cases. Once it is reproduced I grep the "Running" lines from >> surefire. This gives me a reproducible order. Then with a kind of dichotomy >> you can find the "previous" test making your test failing and you can >> configure this sequence in idea. >> >> Not perfect but better than hiding the issue probably. >> >> Also running "clean" enforces inodes to change and increase the >> probability to reproduce it on linux. >> >> >> Romain Manni-Bucau >> @rmannibucau <https://twitter.com/rmannibucau> | Blog >> <https://rmannibucau.metawerx.net/> | Old Blog >> <http://rmannibucau.wordpress.com> | Github >> <https://github.com/rmannibucau> | LinkedIn >> <https://www.linkedin.com/in/rmannibucau> >> >> 2018-01-30 18:03 GMT+01:00 Daniel Kulp <dk...@apache.org>: >> >>> The biggest problem with random is that if a test fails due to an >>> interaction, you have no way to reproduce it. You could re-run with >>> random 10 times and it might not fail again. Thus, what good did it do to >>> even flag the failure? At least with alphabetical and reverse >>> alphabetical, if a tests fails, you can rerun and actually have a chance to >>> diagnose the failure. A test that randomly fails once out of every 20 >>> times it runs tends to get @Ignored, not fixed. I’ve seen that way too >>> often. :( >>> >>> Dan >>> >>> >>> > On Jan 30, 2018, at 11:38 AM, Romain Manni-Bucau < >>> rmannibu...@gmail.com> wrote: >>> > >>> > Hi Daniel, >>> > >>> > As a quick fix it sounds good but doesnt it hide a leak or issue (in >>> test setup or in main code)? Long story short: using a random order can >>> allow to find bugs faster instead of hiding them and discover them randomly >>> adding a new test. >>> > >>> > That said, good point to have it configurable with a -D or -P and be >>> able to test quickly this flag. >>> > >>> > >>> > Le 30 janv. 2018 17:33, "Daniel Kulp" <dk...@apache.org> a écrit : >>> > I spent a couple hours this morning trying to figure out why two of >>> the SQL tests are failing on my machine, but not for Jenkins or for JB. >>> Not knowing anything about the SQL stuff, it was very hard to debug and it >>> wouldn’t fail within Eclipse or even if I ran that individual test from the >>> command line with -Dtest= . Thus, a real pain… >>> > >>> > It turns out, there is an interaction problem between it and a test >>> that is running before it on my machine, but on Jenkins and JB’s machine, >>> the tests are run in a different order so the problem doesn’t surface. So >>> here’s the question: >>> > >>> > Should the surefire configuration specify a “runOrder” so that the >>> tests would run the same on all of our machines? By default, the runOrder >>> is “filesystem” so depending on the order that the filesystem returns the >>> test classes to surefire, the tests would run in different order. It >>> looks like my APFS Mac returns them in a different order than JB’s Linux. >>> But that also means if there is a Jenkins test failure or similar, I >>> might not be able to reproduce it. (Or a Windows person or even a Linux >>> user using a different fs than Jenkins) For most of the projects I use, >>> we generally have “<runOrder>alphabetical</runOrder>” to make things >>> completely predictable. That said, by making things non-deterministic, it >>> can find issues like this where tests aren’t cleaning themselves up >>> correctly. Could do a runOrder=hourly to flip back and forth between >>> alphabetical and reverse-alphabetical. Predictable, but changes to detect >>> issues. >>> > >>> > Thoughts? >>> > >>> > >>> > -- >>> > Daniel Kulp >>> > dk...@apache.org - http://dankulp.com/blog >>> > Talend Community Coder - http://coders.talend.com >>> > >>> >>> -- >>> Daniel Kulp >>> dk...@apache.org - http://dankulp.com/blog >>> Talend Community Coder - http://coders.talend.com >>> >>> >> >