accumulo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christopher <ctubb...@apache.org>
Subject Re: Integration Tests
Date Mon, 29 Apr 2013 16:27:20 GMT
The proxy connecting to a mock Accumulo is a bit different from
starting an instance of Accumulo, because mock is entirely
self-contained from its the API, and there's nothing to start up.
Having a set of options to use different connector types is different
than having an option to launch different Accumulos. I think. In any
case, it may not need to change as I've described it, but if we want
to support end-to-end integration tests, we need to fix the circular
dependency with the proxy and MiniAccumuloCluster.

I don't know of any other issues with this dependency structure for
1.5, but I do think it should be resolved before 1.5 release, so it
won't create churn in 1.6.

--
Christopher L Tubbs II
http://gravatar.com/ctubbsii


On Mon, Apr 29, 2013 at 10:58 AM, Keith Turner <keith@deenlo.com> wrote:
> On Sun, Apr 28, 2013 at 1:45 AM, Christopher <ctubbsii@apache.org> wrote:
>
>> I agree that accumulo-test is the best place, but I think we should
>> make it a point that no other modules should depend on accumulo-test
>> for precisely this reason... to provide a place for end-to-end tests
>> of other modules (the assembly module notwithstanding).
>>
>> This is actually a good reason to move MiniAccumuloCluster from test,
>> because the proxy currently has a dependency on it just for
>> MiniAccumuloCluster. That way, end-to-end integration testing that
>> includes even testing of the proxy would make sense to exist in
>> accumulo-test, and we'd avoid a circular dependency. It could be moved
>> to server instead, as it seems to me that it is essentially an
>> alternate server implementation (from the proxy's perspective,
>> anyway). Though, I'm not sure I like the idea that the proxy is
>> dependent on anything other than client code (accumulo-core).
>
>
>> Alternatively, the proxy's dependency could be reversed, so that
>> instead of the proxy having an option to start up a
>> MiniAccumuloCluster, the MiniAccumuloCluster could have an option to
>>
>
> The proxy also has an option to use mock Accumulo.  It seems to follow from
> this that MiniAccumulo would be an option also.
>
>
>> start up the proxy. This reversal actually makes more sense to me
>
> anyway. I never understood why the proxy should have the option to
>> start up Accumulo, Mini or otherwise, as the natural operation, as it
>> seems to me to be a bit backwards: an interface launching the service,
>> rather than a service exposing an interface. I suppose it's not
>> unprecedented, but it seems backwards to me.
>>
>> A third option is to move MiniAccumuloCluster to another module
>> entirely, but I'm not so sure that's necessary or desirable.
>>
>> Any of these options removes the circular dependency, if we're going
>> to make the accumulo-test the place to put end-to-end integration
>> tests.
>>
>> My preference is a combination of the first two options: to put
>> MiniAccumuloCluster in the server module and reverse the dependency,
>> so that proxy only depends on core, and none depend on test.
>>
>
> Making these changes in 1.6 would be annoying for users (moving MiniAcc to
> another package and deprecating options in the Proxy).  On the other hand
> 1.5. will not be perfect and it needs to be released.  Simplifying
> the dependency tree may avoid problems in the future.  Do you know of any
> issues this dependency structure will cause for 1.5.0?
>
>
>>
>>
>> --
>> Christopher L Tubbs II
>> http://gravatar.com/ctubbsii
>>
>>
>> On Fri, Apr 26, 2013 at 11:40 AM, Keith Turner <keith@deenlo.com> wrote:
>> > On Fri, Apr 26, 2013 at 10:18 AM, Corey Nolet <cnolet@texeltek.com>
>> wrote:
>> >
>> >> So the accumulo-test would be the best place to start putting end to end
>> >> integration tests?
>> >>
>> >
>> > For test against code in modules that can not depend on accumulo-test I
>> > think this is a good place.
>> >
>> >
>> >>
>> >>
>> >> Sent from my Verizon Wireless 4G LTE Smartphone
>> >>
>> >> -------- Original message --------
>> >> From: Christopher <ctubbsii@apache.org>
>> >> Date: 04/26/2013  7:27 AM  (GMT-05:00)
>> >> To: Accumulo Dev List <dev@accumulo.apache.org>
>> >> Subject: Re: Integration Tests
>> >>
>> >> The maven-failsafe-plugin is already configured to execute integration
>> >> tests in the 1.5 branch and trunk. Simply name your JUnit classes to
>> >> execute with the pattern of "*IT" (vs. "*Test" for unit tests), and
>> >> they'll execute during the integration test phase of the build
>> >> lifecycle. That way, they won't slow down a "mvn package" build, but
>> >> they'll still get executed for a full build "mvn verify".
>> >>
>> >> --
>> >> Christopher L Tubbs II
>> >> http://gravatar.com/ctubbsii
>> >>
>> >>
>> >> On Thu, Apr 25, 2013 at 11:01 PM, Corey Nolet <cnolet@texeltek.com>
>> wrote:
>> >> > Would it make sense to start putting more integration tests for tablet
>> >> servers, master, connector, etc… inside of the accumulo-test module (or
>> >> some other module)? Seems like it'd be useful to have tests at the
>> various
>> >> layers. Until we have a plugin to start up the mini acc cluster once and
>> >> only once, I don't want to drastically slow down the build. I would,
>> >> however, like to have some integration tests for a current ticket I'm
>> >> working on.
>> >>
>>

Mime
View raw message