accumulo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ctubbsii <...@git.apache.org>
Subject [GitHub] accumulo pull request #144: ACCUMULO-4423 Annotate integration tests with ca...
Date Wed, 31 Aug 2016 03:19:37 GMT
Github user ctubbsii commented on a diff in the pull request:

    https://github.com/apache/accumulo/pull/144#discussion_r76918438
  
    --- Diff: TESTING.md ---
    @@ -47,23 +47,27 @@ but are checking for regressions that were previously seen in the
codebase. Thes
     resources, at least another gigabyte of memory over what Maven itself requires. As such,
it's recommended to have at
     least 3-4GB of free memory and 10GB of free disk space.
     
    -## Accumulo for testing
    +## Test Categories
     
    -The primary reason these tests take so much longer than the unit tests is that most are
using an Accumulo instance to
    -perform the test. It's a necessary evil; however, there are things we can do to improve
this.
    +Accumulo uses JUnit Category annotations to categorize certain integration tests based
on their runtime requirements.
    +Presently there are three different categories:
     
    -## MiniAccumuloCluster
    +### MiniAccumuloCluster (`MiniClusterOnlyTest`)
     
    -By default, these tests will use a MiniAccumuloCluster which is a multi-process "implementation"
of Accumulo, managed
    -through Java interfaces. This MiniAccumuloCluster has the ability to use the local filesystem
or Apache Hadoop's
    +These tests use MiniAccumuloCluster (MAC) which is a multi-process "implementation" of
Accumulo, managed
    +through Java APIs. This MiniAccumuloCluster has the ability to use the local filesystem
or Apache Hadoop's
     MiniDFSCluster, as well as starting one to many tablet servers. MiniAccumuloCluster tends
to be a very useful tool in
     that it can automatically provide a workable instance that mimics how an actual deployment
functions.
     
     The downside of using MiniAccumuloCluster is that a significant portion of each test
is now devoted to starting and
     stopping the MiniAccumuloCluster.  While this is a surefire way to isolate tests from
interferring with one another, it
    -increases the actual runtime of the test by, on average, 10x.
    +increases the actual runtime of the test by, on average, 10x. Some times the tests require
the use of MAC because the
    +test is being destructive or some special environment setup (e.g. Kerberos).
     
    -## Standalone Cluster
    +By default, these tests are run during the `integration-test` lifecycle phase using `mvn
verify`. These tests can
    +also be run at the `test` lifecycle phase using `mvn package -Pminicluster-unit-tests`.
    --- End diff --
    
    No, with the default groups, `mvn verify` will run those categories.... not all groups.
I'd want it only to explicitly contrast the existing documentation. We're adding a layer on
top of the plugin behavior, which breaks conventions, so it's important to document our alterations
so users familiar with the conventions will understand how they are modified.
    
    This documentation for running all tests wouldn't be necessary if our default was not
to specify any groups. Currently, that's not our default.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

Mime
View raw message