You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2012/05/31 06:23:21 UTC
svn commit: r1344558 - in /hbase/trunk: hbase-common/pom.xml
hbase-server/pom.xml
hbase-server/src/test/java/org/apache/hadoop/hbase/util/HBaseHomePath.java
hbase-site/src/docbkx/developer.xml pom.xml
Author: stack
Date: Thu May 31 04:23:20 2012
New Revision: 1344558
URL: http://svn.apache.org/viewvc?rev=1344558&view=rev
Log:
HBASE-6087 Add hbase-common module: ADDENDUM
Modified:
hbase/trunk/hbase-common/pom.xml
hbase/trunk/hbase-server/pom.xml
hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/util/HBaseHomePath.java
hbase/trunk/hbase-site/src/docbkx/developer.xml
hbase/trunk/pom.xml
Modified: hbase/trunk/hbase-common/pom.xml
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-common/pom.xml?rev=1344558&r1=1344557&r2=1344558&view=diff
==============================================================================
--- hbase/trunk/hbase-common/pom.xml (original)
+++ hbase/trunk/hbase-common/pom.xml Thu May 31 04:23:20 2012
@@ -67,7 +67,20 @@
</dependencies>
<profiles>
- <!-- profile against Hadoop 1.0.x: This is the default. It has to have the same
+ <!-- Skip the tests in this module -->
+ <profile>
+ <id>skip-common-tests</id>
+ <activation>
+ <property>
+ <name>skip-common-tests</name>
+ </property>
+ </activation>
+ <properties>
+ <surefire.skipFirstPart>true</surefire.skipFirstPart>
+ </properties>
+ </profile>
+
+ <!-- profile against Hadoop 1.0.x: This is the default. It has to have the same
activation property as the parent Hadoop 1.0.x profile to make sure it gets run at
the same time. -->
<profile>
Modified: hbase/trunk/hbase-server/pom.xml
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/pom.xml?rev=1344558&r1=1344557&r2=1344558&view=diff
==============================================================================
--- hbase/trunk/hbase-server/pom.xml (original)
+++ hbase/trunk/hbase-server/pom.xml Thu May 31 04:23:20 2012
@@ -465,6 +465,20 @@
<profiles>
+ <!-- Skip the tests in this module -->
+ <profile>
+ <id>skip-server-tests</id>
+ <activation>
+ <property>
+ <name>skip-server-tests</name>
+ </property>
+ </activation>
+ <properties>
+ <surefire.skipFirstPart>true</surefire.skipFirstPart>
+ <surefire.skipSecondPart>true</surefire.skipSecondPart>
+ </properties>
+ </profile>
+
<!-- Special builds -->
<profile>
<id>hadoop-snappy</id>
Modified: hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/util/HBaseHomePath.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/util/HBaseHomePath.java?rev=1344558&r1=1344557&r2=1344558&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/util/HBaseHomePath.java (original)
+++ hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/util/HBaseHomePath.java Thu May 31 04:23:20 2012
@@ -18,7 +18,7 @@ package org.apache.hadoop.hbase.util;
import java.net.URL;
-import org.apache.hadoop.hbase.HConstants;
+import org.apache.hadoop.hbase.master.HMaster;
/** Determines HBase home path from either class or jar directory */
public class HBaseHomePath {
@@ -31,7 +31,7 @@ public class HBaseHomePath {
}
public static String getHomePath() {
- String className = HConstants.class.getName(); // This could have been any HBase class.
+ String className = HMaster.class.getName(); // This could have been any HBase class.
String relPathForClass = className.replace(".", "/") + ".class";
URL url = ClassLoader.getSystemResource(relPathForClass);
relPathForClass = "/" + relPathForClass;
Modified: hbase/trunk/hbase-site/src/docbkx/developer.xml
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-site/src/docbkx/developer.xml?rev=1344558&r1=1344557&r2=1344558&view=diff
==============================================================================
--- hbase/trunk/hbase-site/src/docbkx/developer.xml (original)
+++ hbase/trunk/hbase-site/src/docbkx/developer.xml Thu May 31 04:23:20 2012
@@ -276,18 +276,37 @@ What is the new development version for
<section xml:id="hbase.tests">
<title>Tests</title>
-<para>HBase tests are divided into two groups: <xref linkend="hbase.unittests"/> and
-<xref linkend="integration.tests" /> (As of this writing, Integration tests are little
-developed).
-Unit tests are run by the Apache Continuous Integration server, Jenkins at
-builds.apache.org, and by developers when they are verifying a fix does not cause breakage elsewhere in the code base.
-Integration tests are generally long-running tests that are invoked out-of-bound of
-the CI server when you want to do more intensive testing beyond the unit test set.
-Integration tests, for example, are run proving a release candidate or a production
-deploy. Below we go into more detail on each of these test types. Developers at a
-minimum should familiarize themselves with the unit test detail; unit tests in
+<para> Developers, at a minimum, should familiarize themselves with the unit test detail; unit tests in
HBase have a character not usually seen in other projects.</para>
+<section xml:id="hbase.moduletests">
+<title>HBase Modules</title>
+<para>As of 0.96, HBase is split into multiple modules which creates "interesting" rules for
+how and where tests are written. If you are writting code for <classname>hbase-server</classname>, see
+<xref linkend="hbase.unittests"/> for how to write your tests; these tests can spin
+up a minicluster and will need to be categorized. For any other module, for example
+<classname>hbase-common</classname>, the tests must be strict unit tests and just test the class
+under test - no use of the HBaseTestingUtility or minicluster is allowed (or even possible
+given the dependency tree).</para>
+ <section xml:id="hbase.moduletest.run">
+ <title>Running Tests in other Modules</title>
+ If the module you are developing in has no other dependencies on other HBase modules, then
+ you can cd into that module and just run:
+ <programlisting>mvn test</programlisting>
+ which will just run the tests IN THAT MODULE. If there are other dependencies on other modules,
+ then you will have run the command from the ROOT HBASE DIRECTORY. This will run the tests in the other
+ modules, unless you specify to skip the tests in that module. For instance, to skip the tests in the hbase-server module,
+ you would run:
+ <programlisting>mvn clean test -Dskip-server-tests</programlisting>
+ from the top level directory to run all the tests in modules other than hbase-server. Note that you
+ can specify to skip tests in multiple modules as well as just for a single module. For example, to skip
+ the tests in <classname>hbase-server</classname> and <classname>hbase-common</classname>, you would run:
+ <programlisting>mvn clean test -Dskip-server-tests -Dskip-common-tests</programlisting>
+ <para>Also, keep in mind that if you are running tests in the <classname>hbase-server</classname> module you will need to
+ apply the maven profiles discussed in <xref linkend="hbase.unittests.cmds"/> to get the tests to run properly.</para>
+ </section>
+</section>
+
<section xml:id="hbase.unittests">
<title>Unit Tests</title>
<para>HBase unit tests are subdivided into three categories: small, medium and large, with
@@ -333,8 +352,7 @@ individually. They can use a cluster, an
<section xml:id="hbase.unittests.large">
<title><indexterm><primary>LargeTests</primary></indexterm></title>
<para><emphasis>Large</emphasis> tests are everything else. They are typically integration-like
-tests (yes, some large tests should be moved out to be HBase <xref linkend="integration.tests" />),
-regression tests for specific bugs, timeout tests, performance tests.
+tests, regression tests for specific bugs, timeout tests, performance tests.
They are executed before a commit on the pre-integration machines. They can be run on
the developer machine as well.
</para>
@@ -491,12 +509,6 @@ mvn compile
above in <xref linkend="hbase.unittests" /></para>
</section>
- <section xml:id="maven.build.commanas.integration.tests">
- <title>Running all or individual Integration Tests</title>
- <para>See <xref linkend="integration.tests" />
- </para>
- </section>
-
<section xml:id="maven.build.hadoop">
<title>Building against various hadoop versions.</title>
<para>As of 0.96, HBase supports building against hadoop versions: 1.0.3, 2.0.0-alpha and 3.0.0-SNAPSHOT.
Modified: hbase/trunk/pom.xml
URL: http://svn.apache.org/viewvc/hbase/trunk/pom.xml?rev=1344558&r1=1344557&r2=1344558&view=diff
==============================================================================
--- hbase/trunk/pom.xml (original)
+++ hbase/trunk/pom.xml Thu May 31 04:23:20 2012
@@ -426,6 +426,7 @@
</dependencies>
<!-- Generic testing configuration for all packages -->
<configuration>
+ <failIfNoTests>false</failIfNoTests>
<skip>${surefire.skipFirstPart}</skip>
<forkMode>${surefire.firstPartForkMode}</forkMode>
<parallel>${surefire.firstPartParallel}</parallel>