Hi everyone.  Maybe providing the option to run it both ways -- start your
own cluster vs. using one that is pre-started -- might be useful?  Don't
know how it would work or if it would be useful, but it is something to
think about.

Also, while the argument against using a pre-started cluster due to an
expected increase in test flakiness is reasonable, it is conjecture and may
not turn out to be correct; if it isn't too much trouble it might be worth
it to actually see if the arguments is right since the decreased time
benefit is less conjecture/more real.

Ron

On Wed, Feb 27, 2019 at 10:39 AM Sönke Liebau
<soenke.lie...@opencore.com.invalid> wrote:

> Hi,
>
> while I am also extremely annoyed at times by the amount of coffee I
> have to drink before tests finish I think the argument about flaky
> tests is valid! The current setup has the benefit that every test case
> runs on a pristine cluster, if we changed this we'd need to go through
> all tests and ensure that topic names are different, which can
> probably be abstracted to include a timestamp in the name or something
> like that, but it is an additional failure potential.
> Add to this the fact that "JUnit runs tests using a deterministic, but
> unpredictable order" and the water gets even muddier. Potentially this
> might mean that adding an additional test case changes the order that
> existing test cases are executed in which might mean that all of a
> sudden something breaks that you didn't even touch.
>
> Best regards,
> Sönke
>
>
> On Wed, Feb 27, 2019 at 2:36 PM Stanislav Kozlovski
> <stanis...@confluent.io> wrote:
> >
> > Hey Viktor,
> >
> > I am all up for the idea of speeding up the tests. Running the
> > `:core:integrationTest` command takes an absurd amount of time as is and
> is
> > continuously going to go up if we don't do anything about it.
> > Having said that, I am very scared that your proposal might significantly
> > increase the test flakiness of current and future tests - test flakiness
> is
> > a huge problem we're battling. We don't get green PR builds too often -
> it
> > is very common that one or two flaky tests fail in each PR.
> > We have also found it hard to get a green build for the 2.2 release (
> > https://jenkins.confluent.io/job/apache-kafka-test/job/2.2/).
> >
> > On Wed, Feb 27, 2019 at 11:09 AM Viktor Somogyi-Vass <
> > viktorsomo...@gmail.com> wrote:
> >
> > > Hi Folks,
> > >
> > > I've been observing lately that unit tests usually take 2.5 hours to
> run
> > > and a very big portion of these are the core tests where a new cluster
> is
> > > spun up for every test. This takes most of the time. I ran a test
> > > (TopicCommandWithAdminClient with 38 test inside) through the profiler
> and
> > > it shows for instance that running the whole class itself took 10
> minutes
> > > and 37 seconds where the useful time was 5 minutes 18 seconds. That's a
> > > 100% overhead. Without profiler the whole class takes 7 minutes and 48
> > > seconds, so the useful time would be between 3-4 minutes. This is a
> bigger
> > > test though, most of them won't take this much.
> > > There are 74 classes that implement KafkaServerTestHarness and just
> running
> > > :core:integrationTest takes almost 2 hours.
> > >
> > > I think we could greatly speed up these integration tests by just
> creating
> > > the cluster once per class and perform the tests on separate methods. I
> > > know that this a little bit contradicts to the principle that tests
> should
> > > be independent but it seems like recreating clusters for each is a very
> > > expensive operation. Also if the tests are acting on different
> resources
> > > (different topics, etc.) then it might not hurt their independence.
> There
> > > might be cases of course where this is not possible but I think there
> could
> > > be a lot where it is.
> > >
> > > In the optimal case we could cut the testing time back by
> approximately an
> > > hour. This would save resources and give quicker feedback for PR
> builds.
> > >
> > > What are your thoughts?
> > > Has anyone thought about this or were there any attempts made?
> > >
> > > Best,
> > > Viktor
> > >
> >
> >
> > --
> > Best,
> > Stanislav
>
>
>
> --
> Sönke Liebau
> Partner
> Tel. +49 179 7940878
> OpenCore GmbH & Co. KG - Thomas-Mann-Straße 8 - 22880 Wedel - Germany
>

Reply via email to