Skip to main content

Automated and tool agnostic data integration testing tool.

Project description

#etlTest

[![Build Status](https://travis-ci.org/OpenDataAlex/etlTest.png?branch=dev)](https://travis-ci.org/OpenDataAlex/etlTest)
[![Coverage Status](https://coveralls.io/repos/OpenDataAlex/etlTest/badge.png?branch=dev)](https://coveralls.io/r/OpenDataAlex/etlTest?branch=dev)
[![Codacy Badge](https://www.codacy.com/project/badge/0ff3a2e5b651416e9292ca9cdedf58f8)](https://www.codacy.com)
[![Documentation Status](https://readthedocs.org/projects/etltest/badge/?version=latest)](https://readthedocs.org/projects/etltest/?badge=latest)
[![endorse](https://api.coderwall.com/dbaalex/endorsecount.png)](https://coderwall.com/dbaalex)


##Installation

You can install **etlTest** by downloading the source and using the setup.py script as follows:

$ git clone git@github.com:OpenDataAlex/etlTest.git
$ cd etlTest
$ python setup.py install

This setup call installs all of the necessary python dependencies. There are a few external dependencies as well, so please see the section below labeled "Non-Python Dependencies".

Once you have done that, its ready to run!

### So what is etlTest?

Having come from software development and working with data integration tools, we always wondered why there wasn't
some kind of uniform unit and integration testing tool specific to data integration. etlTest aims to fill that gap
by providing an easy to use tool and data source agnostic testing tool. Testing is designed to be "black box" -
which means that we aren't diving into the actual data integration code. Rather,
we are executing the data integration process based on test data sets provided by the test writer and comparing the
results using Python's unittest framework.

etlTest is based on the work and discussions that were started with etlUnit.

### Quickstart

To actually use etlTest, you need a data and test file for it to act on. A most basic resource file can be
found in
the [samples](https://github.com/OpenDataAlex/etlTest/tree/dev/etltest/samples) directory of the project
(data/etlUnitTest/users.yml and test/dataMart/users_dim.yml).
Executing the
following will take that resource, generate some python code in the output directory specified, and run the code which will display the output of the tests executed to your terminal.

$ python etlTest/etltest/etlTest.py -f <path to users_dim.yml test file> -o /tmp/ -g -e

### Documentation

The documentation for **etlTest** can be found on Read the Docs [here](https://etlTest.readthedocs.org/en/latest/).

### Non-Python Dependencies

The only dependencies that are not handled in python currently are the ones for SQLAlchemy to connect to datasources. Documentation on how to install these is as follows:

* [MySQL](https://github.com/OpenDataAlex/etlTest/blob/develop/docs/mysql_deps.md)
* [Oracle](https://github.com/OpenDataAlex/etlTest/blob/develop/docs/oracle_deps.md)

### Reporting Issues

We would love some feedback! Please do not hesitate to report any issues/questions/comments via the [Github Issue Tracker](https://github.com/OpenDataAlex/etlTest/issues).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

etlTest-0.1.5.tar.gz (57.0 kB view details)

Uploaded Source

File details

Details for the file etlTest-0.1.5.tar.gz.

File metadata

  • Download URL: etlTest-0.1.5.tar.gz
  • Upload date:
  • Size: 57.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for etlTest-0.1.5.tar.gz
Algorithm Hash digest
SHA256 fd1e2b4baaf06bcb6a12c7c827a7dc6c051cc54a2cccbcdca57eba5619893156
MD5 02abdd4a7ca590c9fe66e9a13dd54cf8
BLAKE2b-256 56f9e8cc92025d41e72212bbe1eec337a7e470e674bde04f87d782282f765f42

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page