Repository: sqoop Updated Branches: refs/heads/sqoop2 8cb7fc48a -> 2fdeeb06d
Sqoop2: Add test categories (Abraham Elmahrek via Hari Shreedharan) Project: http://git-wip-us.apache.org/repos/asf/sqoop/repo Commit: http://git-wip-us.apache.org/repos/asf/sqoop/commit/2fdeeb06 Tree: http://git-wip-us.apache.org/repos/asf/sqoop/tree/2fdeeb06 Diff: http://git-wip-us.apache.org/repos/asf/sqoop/diff/2fdeeb06 Branch: refs/heads/sqoop2 Commit: 2fdeeb06d6a7dc41e18c61f32a3ada73203cf545 Parents: 8cb7fc4 Author: Hari Shreedharan <[email protected]> Authored: Fri Dec 19 15:33:43 2014 -0800 Committer: Hari Shreedharan <[email protected]> Committed: Fri Dec 19 15:33:43 2014 -0800 ---------------------------------------------------------------------- .../sqoop/common/test/categories/SlowTests.java | 27 ++++++++++++++++ common/pom.xml | 4 +++ .../sqoop/connector/kafka/TestKafkaLoader.java | 3 ++ docs/pom.xml | 8 +++++ docs/src/site/sphinx/BuildingSqoop2.rst | 9 +++++- pom.xml | 34 ++++++++++++++++++-- 6 files changed, 82 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/sqoop/blob/2fdeeb06/common-test/src/main/java/org/apache/sqoop/common/test/categories/SlowTests.java ---------------------------------------------------------------------- diff --git a/common-test/src/main/java/org/apache/sqoop/common/test/categories/SlowTests.java b/common-test/src/main/java/org/apache/sqoop/common/test/categories/SlowTests.java new file mode 100644 index 0000000..f8ce474 --- /dev/null +++ b/common-test/src/main/java/org/apache/sqoop/common/test/categories/SlowTests.java @@ -0,0 +1,27 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.sqoop.common.test.categories; + +/** + * Slow tests interface for JUnit categories. + * This should be used if your unit tests rely on + * some piece of infrastructure that takes time to start. + * For example, using a MySQL database takes time to setup + * and start because it is in a separate process. + */ +public interface SlowTests {} http://git-wip-us.apache.org/repos/asf/sqoop/blob/2fdeeb06/common/pom.xml ---------------------------------------------------------------------- diff --git a/common/pom.xml b/common/pom.xml index 04119f2..e8a8010 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -33,6 +33,10 @@ limitations under the License. <dependencies> <dependency> + <groupId>org.apache.sqoop</groupId> + <artifactId>sqoop-common-test</artifactId> + </dependency> + <dependency> <groupId>com.googlecode.json-simple</groupId> <artifactId>json-simple</artifactId> </dependency> http://git-wip-us.apache.org/repos/asf/sqoop/blob/2fdeeb06/connector/connector-kafka/src/test/java/org/apache/sqoop/connector/kafka/TestKafkaLoader.java ---------------------------------------------------------------------- diff --git a/connector/connector-kafka/src/test/java/org/apache/sqoop/connector/kafka/TestKafkaLoader.java b/connector/connector-kafka/src/test/java/org/apache/sqoop/connector/kafka/TestKafkaLoader.java index f896e9e..4ed027f 100644 --- a/connector/connector-kafka/src/test/java/org/apache/sqoop/connector/kafka/TestKafkaLoader.java +++ b/connector/connector-kafka/src/test/java/org/apache/sqoop/connector/kafka/TestKafkaLoader.java @@ -18,6 +18,7 @@ package org.apache.sqoop.connector.kafka; import kafka.message.MessageAndMetadata; +import org.apache.sqoop.common.test.categories.SlowTests; import org.apache.sqoop.connector.kafka.configuration.ToJobConfiguration; import org.apache.sqoop.connector.kafka.configuration.LinkConfiguration; import org.apache.sqoop.common.test.kafka.TestUtil; @@ -27,11 +28,13 @@ import org.junit.AfterClass; import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; +import org.junit.experimental.categories.Category; import java.io.IOException; import java.util.ArrayList; import java.util.List; +@Category({ SlowTests.class }) public class TestKafkaLoader { private static TestUtil testUtil = TestUtil.getInstance(); http://git-wip-us.apache.org/repos/asf/sqoop/blob/2fdeeb06/docs/pom.xml ---------------------------------------------------------------------- diff --git a/docs/pom.xml b/docs/pom.xml index 75f428c..f8ccc34 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -31,6 +31,14 @@ limitations under the License. <artifactId>sqoop-docs</artifactId> <name>Sqoop Documentation</name> + <dependencies> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <scope>test</scope> + </dependency> + </dependencies> + <reporting> <plugins> http://git-wip-us.apache.org/repos/asf/sqoop/blob/2fdeeb06/docs/src/site/sphinx/BuildingSqoop2.rst ---------------------------------------------------------------------- diff --git a/docs/src/site/sphinx/BuildingSqoop2.rst b/docs/src/site/sphinx/BuildingSqoop2.rst index ad07d46..35b22d4 100644 --- a/docs/src/site/sphinx/BuildingSqoop2.rst +++ b/docs/src/site/sphinx/BuildingSqoop2.rst @@ -54,7 +54,7 @@ Maven target ``package`` can be used to create Sqoop packages similar to the one Running tests ------------- -Sqoop supports two different sets of tests. First smaller and much faster set is called unit tests and will be executed on maven target ``test``. Second larger set of integration tests will be executed on maven target ``integration-test``. Please note that integration tests might require manual steps for installing various JDBC drivers into your local maven cache. +Sqoop supports two different sets of tests. First smaller and much faster set is called **unit tests** and will be executed on maven target ``test``. Second larger set of **integration tests** will be executed on maven target ``integration-test``. Please note that integration tests might require manual steps for installing various JDBC drivers into your local maven cache. Example for running unit tests: @@ -67,3 +67,10 @@ Example for running integration tests: :: mvn integration-test + +For the **unit tests**, there are two helpful profiles: **fast** and **slow**. The **fast** unit tests do not start or use any services. The **slow** unit tests, may start services or use an external service (ie. MySQL). + +:: + + mvn test -Pfast,hadoop200 + mvn test -Pslow,hadoop200 \ No newline at end of file http://git-wip-us.apache.org/repos/asf/sqoop/blob/2fdeeb06/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index aa4231e..afdeb75 100644 --- a/pom.xml +++ b/pom.xml @@ -133,6 +133,37 @@ limitations under the License. <!-- Profiles for various supported Hadoop distributions --> <profiles> + <profile> + <id>fast</id> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <excludedGroups>org.apache.sqoop.common.test.categories.SlowTests</excludedGroups> + </configuration> + </plugin> + </plugins> + </build> + </profile> + + <profile> + <id>slow</id> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <groups>org.apache.sqoop.common.test.categories.SlowTests</groups> + </configuration> + </plugin> + </plugins> + </build> + </profile> <!-- Hadoop 1.x --> <profile> @@ -639,11 +670,10 @@ limitations under the License. <version>2.3.2</version> </plugin> - <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> - <version>2.12</version> + <version>2.13</version> <configuration> <forkMode>always</forkMode> <forkedProcessTimeoutInSeconds>3600</forkedProcessTimeoutInSeconds>
