diff --git a/bin/hbase b/bin/hbase
index 4489a3f3391..f1ffb11f3d1 100755
--- a/bin/hbase
+++ b/bin/hbase
@@ -729,6 +729,13 @@ elif [ "$COMMAND" = "hbtop" ] ; then
HBASE_OPTS="${HBASE_OPTS} ${HBASE_HBTOP_OPTS}"
else
CLASS=$COMMAND
+if [[ "$CLASS" =~ .*IntegrationTest.* ]] ; then
+ for f in ${HBASE_HOME}/lib/test/*.jar; do
+ if [ -f "${f}" ]; then
+ CLASSPATH="${CLASSPATH}:${f}"
+ fi
+ done
+ fi
fi
# Add lib/jdk11 jars to the classpath
diff --git a/hbase-assembly/pom.xml b/hbase-assembly/pom.xml
index b94699e6a5a..796f443e9b3 100644
--- a/hbase-assembly/pom.xml
+++ b/hbase-assembly/pom.xml
@@ -388,7 +388,18 @@
org.apache.hbase
hbase-rsgroup
-
+
+ junit
+ junit
+
+
+ org.mockito
+ mockito-core
+
+
+ compile
+
+
diff --git a/hbase-assembly/src/main/assembly/client.xml b/hbase-assembly/src/main/assembly/client.xml
index 2a8e669ae49..54ed2e96fdd 100644
--- a/hbase-assembly/src/main/assembly/client.xml
+++ b/hbase-assembly/src/main/assembly/client.xml
@@ -52,6 +52,7 @@
com.sun.jersey:*
com.sun.jersey.contribs:*
jline:jline
+ junit:junit
com.github.stephenc.findbugs:findbugs-annotations
commons-logging:commons-logging
org.apache.hbase:hbase-shaded-client
@@ -63,6 +64,8 @@
org.slf4j:*
org.apache.logging.log4j:*
io.opentelemetry.javaagent:*
+ org.hamcrest:hamcrest-core
+ org.mockito:mockito-core
@@ -157,6 +160,15 @@
io.opentelemetry.javaagent:*
+
+
+ lib/test
+
+ junit:junit
+ org.hamcrest:hamcrest-core
+ org.mockito:mockito-core
+
+
diff --git a/hbase-assembly/src/main/assembly/hadoop-three-compat.xml b/hbase-assembly/src/main/assembly/hadoop-three-compat.xml
index a1bbcb8ab86..61a2dfae8bb 100644
--- a/hbase-assembly/src/main/assembly/hadoop-three-compat.xml
+++ b/hbase-assembly/src/main/assembly/hadoop-three-compat.xml
@@ -110,6 +110,9 @@
org.slf4j:*
org.apache.logging.log4j:*
io.opentelemetry.javaagent:*
+ junit:junit
+ org.hamcrest:hamcrest-core
+ org.mockito:mockito-core
@@ -258,6 +261,16 @@
io.opentelemetry.javaagent:*
+
+
+
+ lib/test
+
+ junit:junit
+ org.hamcrest:hamcrest-core
+ org.mockito:mockito-core
+
+
diff --git a/src/main/asciidoc/_chapters/developer.adoc b/src/main/asciidoc/_chapters/developer.adoc
index b3e2ffea144..6eacead1cfd 100644
--- a/src/main/asciidoc/_chapters/developer.adoc
+++ b/src/main/asciidoc/_chapters/developer.adoc
@@ -1677,7 +1677,7 @@ They are generally long-lasting, sizeable (the test can be asked to 1M rows or 1
Integration tests are what you would run when you need to more elaborate proofing of a release candidate beyond what unit tests can do.
They are not generally run on the Apache Continuous Integration build server, however, some sites opt to run integration tests as a part of their continuous testing on an actual cluster.
-Integration tests currently live under the _src/test_ directory in the hbase-it submodule and will match the regex: _**/IntegrationTest*.java_.
+Integration tests currently live under the _src/test_ directory in the hbase-it submodule and will match the regex: _*IntegrationTest*.java_.
All integration tests are also annotated with `@Category(IntegrationTests.class)`.
Integration tests can be run in two modes: using a mini cluster, or against an actual distributed cluster.
@@ -1794,6 +1794,17 @@ Currently tarball deployments, deployments which uses _hbase-daemons.sh_, and li
_/etc/init.d/_ scripts are not supported for now, but it can be easily added.
For other deployment options, a ClusterManager can be implemented and plugged in.
+Some integration tests define a _main_ method as entry point, and can be run on its' own, rather than using the test driver. For example, the _itbll_ test can be run as follows:
+
+----
+bin/hbase org.apache.hadoop.hbase.test.IntegrationTestBigLinkedList loop 2 1 100000 /temp 1 1000 50 1 0
+----
+
+NOTE: The _hbase_ script assumes all integration tests with exposed _main_ methods to be run
+against a distributed cluster will follow the *IntegrationTest* regex naming pattern
+mentioned above, in order to proper set test dependencies into the classpath.
+
+
[[maven.build.commands.integration.tests.destructive]]
==== Destructive integration / system tests (ChaosMonkey)