+1 to the new test organization.

And I agree with Patrick's explanation of which is the more stable test
category.

On Thu, Jun 28, 2018 at 9:47 AM, Patrick Rhomberg <prhomb...@pivotal.io>
wrote:

> @Dale
>   It seems to me that the Unit / Distributed / etc would be the more stable
> purpose, and as importantly, each level is mutually-exclusive with any
> other.
>   At least under our current categorization tags, the functional area
> categories don't form a partition on our test set.  For instance, the
> GatewayLegacyAuthenticationRegressionTest is both a WanTest and a
> SecurityTest.
>
> On Wed, Jun 27, 2018 at 10:19 AM, Kirk Lund <kl...@apache.org> wrote:
>
> > Don't forget to add "acceptanceTest/"
> >
> > On Tue, Jun 26, 2018 at 3:36 PM, Jacob Barrett <jbarr...@pivotal.io>
> > wrote:
> >
> > > I'd like to suggest that we refactor our current test source set, which
> > > contains both unit, integration and distributed tests, into distinct
> > source
> > > sets, test, integrationTest, distributedTest. These source sets would
> > > replace the use of the primary categories UnitTest, IntegrationTest and
> > > DistributedTest.
> > >
> > > The catalyst for this change is an issue that Gradle's test runner
> > doesn't
> > > pre-filter categories when launching tests, so if the tests are
> launched
> > in
> > > separate JVMs or Docker containers, like :distributeTest task, the cost
> > of
> > > spinning up those resources is realized only to immediately exit
> without
> > > running any test for all test classes in the module. Switching to
> > separate
> > > source sets for each category would remove the need to filter on
> category
> > > and only tests in the corresponding source set would get executed in
> > their
> > > external JVM or Docker container. An example of this issue is
> > > geode-junit:distributedTest task, which forks all test classes in
> > separate
> > > JVMs but never actually runs any tests since there are no
> DistributedTest
> > > tagged tests.
> > >
> > > The secondary effect is a way too isolate dependencies in each of the
> > > source sets. Unit tests in the test set would not have dependencies
> need
> > > for integration tests or distributed test so that if you accidentally
> > tried
> > > to import classes from those frameworks you would get a compiler
> failure.
> > > Likewise, integration tests would not include distributed test
> framework
> > > dependencies. Any shared test classes like mock, dummies, fakes, etc.
> > could
> > > be shared in a commonTest source set, but would not contain any tests
> > > itself.
> > >
> > > The proposed structure would look like this:
> > >
> > > test/ - only contains unit tests.
> > > integrationTest/ - only contains integration style tests.
> > > distributedTest/ - only includes DUnit based tests.
> > > commonTest/ - includes commonly shared classes between each test
> > category.
> > > Does not contain any classes.
> > >
> > > Thoughts?
> > >
> > > -Jake
> > >
> >
>

Reply via email to