You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by zh...@apache.org on 2018/02/22 07:45:43 UTC
[03/50] [abbrv] hbase git commit: HBASE-20031 Unable to run
integration test using mvn due to missing HBaseClassTestRule
HBASE-20031 Unable to run integration test using mvn due to missing HBaseClassTestRule
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/66ba8aa5
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/66ba8aa5
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/66ba8aa5
Branch: refs/heads/HBASE-19397-branch-2
Commit: 66ba8aa58cee2bcf74a59cd10238e21604607f40
Parents: e10db9d
Author: tedyu <yu...@gmail.com>
Authored: Wed Feb 21 12:04:17 2018 -0800
Committer: tedyu <yu...@gmail.com>
Committed: Wed Feb 21 12:04:17 2018 -0800
----------------------------------------------------------------------
.../java/org/apache/hadoop/hbase/HBaseClassTestRule.java | 4 ++++
.../apache/hadoop/hbase/HBaseClassTestRuleChecker.java | 10 ++++++++++
src/main/asciidoc/_chapters/developer.adoc | 3 ++-
3 files changed, 16 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/66ba8aa5/hbase-common/src/test/java/org/apache/hadoop/hbase/HBaseClassTestRule.java
----------------------------------------------------------------------
diff --git a/hbase-common/src/test/java/org/apache/hadoop/hbase/HBaseClassTestRule.java b/hbase-common/src/test/java/org/apache/hadoop/hbase/HBaseClassTestRule.java
index a41e383..c3bef0f 100644
--- a/hbase-common/src/test/java/org/apache/hadoop/hbase/HBaseClassTestRule.java
+++ b/hbase-common/src/test/java/org/apache/hadoop/hbase/HBaseClassTestRule.java
@@ -19,6 +19,7 @@ package org.apache.hadoop.hbase;
import java.util.concurrent.TimeUnit;
+import org.apache.hadoop.hbase.testclassification.IntegrationTests;
import org.apache.hadoop.hbase.testclassification.LargeTests;
import org.apache.hadoop.hbase.testclassification.MediumTests;
import org.apache.hadoop.hbase.testclassification.SmallTests;
@@ -63,6 +64,9 @@ public final class HBaseClassTestRule implements TestRule {
// All tests have a 10minute timeout.
return TimeUnit.MINUTES.toSeconds(13);
}
+ if (c == IntegrationTests.class) {
+ return TimeUnit.MINUTES.toSeconds(Long.MAX_VALUE);
+ }
}
throw new IllegalArgumentException(
clazz.getName() + " does not have SmallTests/MediumTests/LargeTests in @Category");
http://git-wip-us.apache.org/repos/asf/hbase/blob/66ba8aa5/hbase-common/src/test/java/org/apache/hadoop/hbase/HBaseClassTestRuleChecker.java
----------------------------------------------------------------------
diff --git a/hbase-common/src/test/java/org/apache/hadoop/hbase/HBaseClassTestRuleChecker.java b/hbase-common/src/test/java/org/apache/hadoop/hbase/HBaseClassTestRuleChecker.java
index 97c657f..c374903 100644
--- a/hbase-common/src/test/java/org/apache/hadoop/hbase/HBaseClassTestRuleChecker.java
+++ b/hbase-common/src/test/java/org/apache/hadoop/hbase/HBaseClassTestRuleChecker.java
@@ -22,8 +22,12 @@ import static org.junit.Assert.fail;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
+import java.util.concurrent.TimeUnit;
+
+import org.apache.hadoop.hbase.testclassification.IntegrationTests;
import org.apache.yetus.audience.InterfaceAudience;
import org.junit.ClassRule;
+import org.junit.experimental.categories.Category;
import org.junit.runner.Description;
import org.junit.runner.notification.RunListener;
import org.junit.runner.notification.RunListener.ThreadSafe;
@@ -37,6 +41,12 @@ public class HBaseClassTestRuleChecker extends RunListener {
@Override
public void testStarted(Description description) throws Exception {
+ Category[] categories = description.getTestClass().getAnnotationsByType(Category.class);
+ for (Class<?> c : categories[0].value()) {
+ if (c == IntegrationTests.class) {
+ return;
+ }
+ }
for (Field field : description.getTestClass().getFields()) {
if (Modifier.isStatic(field.getModifiers()) && field.getType() == HBaseClassTestRule.class &&
field.isAnnotationPresent(ClassRule.class)) {
http://git-wip-us.apache.org/repos/asf/hbase/blob/66ba8aa5/src/main/asciidoc/_chapters/developer.adoc
----------------------------------------------------------------------
diff --git a/src/main/asciidoc/_chapters/developer.adoc b/src/main/asciidoc/_chapters/developer.adoc
index 0cd6ad9..ef9ae25 100644
--- a/src/main/asciidoc/_chapters/developer.adoc
+++ b/src/main/asciidoc/_chapters/developer.adoc
@@ -1015,7 +1015,7 @@ The first three categories, `small`, `medium`, and `large`, are for test cases w
type `$ mvn test`.
In other words, these three categorizations are for HBase unit tests.
The `integration` category is not for unit tests, but for integration tests.
-These are run when you invoke `$ mvn verify`.
+These are normally run when you invoke `$ mvn verify`.
Integration tests are described in <<integration.tests,integration.tests>>.
Keep reading to figure which annotation of the set `small`, `medium`, and `large`
@@ -1042,6 +1042,7 @@ Large Tests (((LargeTests)))::
Integration Tests (((IntegrationTests)))::
_Integration_ tests are system level tests.
See <<integration.tests,integration.tests>> for more info.
+ If you invoke `$ mvn test` on integration tests, there is no timeout for the test.
[[hbase.unittests.cmds]]
=== Running tests