Github user ctubbsii commented on a diff in the pull request:

    https://github.com/apache/accumulo/pull/144#discussion_r76919706
  
    --- 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, `mvn verify` does not run all ITs. It runs all MAC-based ITs which 
inherit from the given super-classes, or were explicitly documented. We can 
have other ITs which do not use MAC (I believe VFS ITs don't use MAC, for 
example), and are not currently categorized. Even if they don't exist 
currently, it is reasonable to expect that they could exist in the future, and 
we'll need to cover that case.


---
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 [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to