Nick made the changes necessary to open up AcceptanceTest to other Geode
submodules and it takes too long. The cause is what Jared mentioned.
Basically, Gradle forks a new JVM for every *Test in our code base and then
executes JUnit which queries the test class for Category and either runs or
doesn't run.

I propose renaming all tests with AcceptanceTest Category to
*AcceptanceTest and then make one more change to Nick's branch to use
*AcceptanceTest file pattern in any submodule. Assuming no one disagrees
with this or has a better idea, I'll try it out in his branch tomorrow.

On Wed, Apr 4, 2018 at 10:09 AM, Jared Stewart <stewart.ja...@gmail.com>
wrote:

> Just FYI, the reason that :acceptanceTest is currently only a target of
> precheckin is https://issues.apache.org/jira/browse/GEODE-3296
>
> For the full details, see this thread on the Gradle Forums:
> https://discuss.gradle.org/t/test-task-with-forkevery-1-
> and-includecategories-performs-poorly/23401
>
>
> On Wed, Apr 4, 2018 at 9:56 AM, Patrick Rhomberg <prhomb...@pivotal.io>
> wrote:
>
> > +1.  AcceptanceTest seems fittings, although...
> >
> > That test category was created with the focus on tests that run gfsh
> > scripts via the GfshRule.  Because the GfshRule uses the built jar and
> > actually launches gfsh to run its tests, all current AcceptanceTests
> exist
> > in geode-assembly.  Perhaps as an oversight, only
> > :geode-assembly:acceptanceTest is a target of the precheckin task.
> >
> > If we want to expand the scope of the AcceptanceTest tag, we'll need to
> go
> > update the gradle to make sure these tests get picked up.
> >
> > On Wed, Apr 4, 2018 at 9:39 AM, Kirk Lund <kl...@apache.org> wrote:
> >
> > > +1 to using AcceptanceTest category for the end-to-end JDBC connector
> > > service tests
> > >
> > > On Wed, Apr 4, 2018 at 8:41 AM, Nick Reich <nre...@pivotal.io> wrote:
> > >
> > > > Using AcceptanceTest category seems like a good solution at the
> moment
> > to
> > > > me.
> > > >
> > > > On Tue, Apr 3, 2018 at 4:29 PM, Sean Goller <sgol...@pivotal.io>
> > wrote:
> > > >
> > > > > I'm actually fine with putting it in AcceptanceTest for now.
> > > > >
> > > > > Ideally I'd like to see something like JDBC connection strings that
> > > could
> > > > > be passed in as properties via the command-line, and if they're not
> > > > present
> > > > > the relevant tests don't get run. That way the entity running the
> > tests
> > > > can
> > > > > decide the best way to enable those tests.
> > > > >
> > > > > On Tue, Apr 3, 2018 at 4:11 PM, Jens Deppe <jde...@pivotal.io>
> > wrote:
> > > > >
> > > > > > I'm in favor of using docker for test isolation. We already have
> an
> > > > > > 'AcceptanceTest' category which you might consider using instead
> of
> > > > > > creating yet another category.
> > > > > >
> > > > > > --Jens
> > > > > >
> > > > > > On Tue, Apr 3, 2018 at 2:02 PM, Nick Reich <nre...@pivotal.io>
> > > wrote:
> > > > > >
> > > > > > > Team,
> > > > > > >
> > > > > > > As part of validating the new JDBC connector for Geode, we
> have a
> > > > need
> > > > > > for
> > > > > > > tests that involving connecting to specific databases (like
> MySQL
> > > and
> > > > > > > Postgres) to validate proper function with those databases.
> Since
> > > > these
> > > > > > > tests require connecting to outside services, unlike existing
> > Geode
> > > > > > tests,
> > > > > > > we are seeking suggestions on how to best incorporate such
> tests
> > > into
> > > > > > > Geode. The approach we have taken so far is to utilize Docker
> > (and
> > > > > Docker
> > > > > > > Compose) to take care of spinning up our external services for
> > the
> > > > > > duration
> > > > > > > of the tests. This, however requires that Docker and Docker
> > Compose
> > > > be
> > > > > > > installed on any machine that the tests are run on.
> Additionally,
> > > the
> > > > > > > Concourse pipeline for validating develop is incompatible with
> > use
> > > of
> > > > > > > Docker for distributed tests, due to the way they are already
> > being
> > > > run
> > > > > > > within Docker containers of their own (it seems possible to
> make
> > it
> > > > > work,
> > > > > > > but would add overhead to all tests and would be a challenge to
> > > > > > implement).
> > > > > > >
> > > > > > > To address these issues, we are considering having these tests
> > run
> > > > > under
> > > > > > a
> > > > > > > new task, such as "serviceTest" (instead of IntegrationTest or
> > > > > > > distributedTest). That way, developers could run all other
> tests
> > > > > normally
> > > > > > > on their machines, only requiring Docker and Docker Compose if
> > they
> > > > > wish
> > > > > > to
> > > > > > > run these specific tests. This would also allow them to be
> their
> > > own
> > > > > task
> > > > > > > in Concourse, eliminating the issues that plague integrating
> > these
> > > > > tests
> > > > > > > there.
> > > > > > >
> > > > > > > Are there other ideas on how to manage these tests or concerns
> > with
> > > > the
> > > > > > > proposed approach?
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to