Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/edwardcapriolo/hive_test
Unit test framework for hive and hive-service
https://github.com/edwardcapriolo/hive_test
Last synced: 2 months ago
JSON representation
Unit test framework for hive and hive-service
- Host: GitHub
- URL: https://github.com/edwardcapriolo/hive_test
- Owner: edwardcapriolo
- Created: 2011-09-16T14:39:11.000Z (almost 13 years ago)
- Default Branch: master
- Last Pushed: 2022-06-29T19:16:33.000Z (almost 2 years ago)
- Last Synced: 2024-01-23T02:48:23.825Z (5 months ago)
- Language: Java
- Homepage:
- Size: 5.44 MB
- Stars: 63
- Watchers: 18
- Forks: 49
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
Lists
- awesome-hadoop - Hive_test - Unit test framework for hive and hive-service (Misc.)
- awesome-hadoop - Hive_test - Unit test framework for hive and hive-service (Misc.)
README
## hive_test: A simple way to test Hive scripts.
[![Build Status](https://travis-ci.org/jmrozanec/hive_test.svg?branch=master)](https://travis-ci.org/jmrozanec/hive_test)
### Usage
hive_test gives us an embedded Hive including an embedded Derby database,
and a local HiveThriftService. This allows us to create unit tests very easily.Hive scripts testing can be done in a similar way to [PigUnit](http://pig.apache.org/docs/r0.8.1/pigunit.html).
For more examples check [this class](https://github.com/jmrozanec/hive_test/blob/master/src/test/java/com/jointhegrid/hive_test/HiveTestTest.java)@Test
public void testScriptListInput() {
Map> input = Maps.>newHashMap();
List lines = Lists.newArrayList();
lines.add("msmith,10");
lines.add("mjohnson,2");
lines.add("mwilliamson,7");
lines.add("mjones,4");
lines.add("mdavies,5");input.put("$INPUT1", lines);
Response output =
HiveBuilder.create()
.hiveTestWithEmbeddedHive("src/test/resources/scripts/passing-scores.hql")
.outputForInput(input);List expected = Lists.newArrayList();
expected.add("msmith,10");
expected.add("mwilliamson,7");assertEquals(ResponseStatus.SUCCESS, output.getResponseStatus());
assertEquals(expected, output.getResult());
}### Maven
#### Available from Maven central
Declare the Maven dependency in your pom.xml file
...
io.teknek
hiveunit
0.0.3
jar-with-dependencies
...
#### Execution profiles
##### Without a local Hadoop install
By default, we're set to download a local copy of Hadoop when you first build Hive Test, or whenever the project is cleaned, just before running our test cases.
You can force a redownload and installation of Hadoop by manually activating the download-hadoop profile
mvn --activate-profiles download-hadoop test
You can also perform the download and extraction process independent of testing.
Download Hadoop (into the maven target directory)
mvn --activate-profiles download-hadoop wagon:download-single
Extract Hadoop (into the maven target directory)
mvn --activate-profiles download-hadoop exec:exec
##### With a local Hadoop install
We'll skip attempting to download and use a local copy of Hadoop if any of the following are true
* set your HADOOP_HOME environment variable to a hadoop distribution
* hadoop tar extracted to $home/hadoop/hadoop-0.20.2_localHive Test will work so long as you have Hadoop in your path, i.e. /usr/bin/hadoop. In this case, you'll want to deactivate the hadoop download.
mvn --activate-profiles -hadoop-home-defined test
### Contribute!
Contributions are welcome! You can contribute by
* starring this repo!
* adding new features
* enhancing existing code
* testing
* enhancing documentation
* bringing suggestions and reporting bugs
* spreading the word / telling us how you use it!