blob: b4c3db376420b178099a9eed0ca0f0dff04b4b8a [file] [log] [blame]
This directory (integration-test) contains all the source code and scripts for the
integration test framework and tests.
The main components are,
* Test framework (src/java/(core, common))
- this forms the core framework which ensures the output of the topology is
converted to json, and uploaded to the test server. It also provides helper
spouts and bolts which are commonly used by tests.
* Test topologies (src/java/topology)
- Test topologies make use of the above framework library to test heron functionality.
Only this section needs to be touched to add any new tests.
* Test runner (src/python/test_runner)
- Test runner picks up the test topologies, launches them on aurora, polls for the actual test
results (from the http server), compares that with expected results and kills the topology.
* Test http server (src/python/http_server)
- a simple http server (launched as an aurora job) to host the integration test results
Test topologies `post` the result, and test runner `get`s the result.
* Test launcher (scripts/test_launcher.sh)
- this scripts is a helper to launch and kill the above components.
To run the tests on jenkins,
Go to "https://ci.twitter.biz/job/heron-staging-integration_tests/"
Select 'Build With Parameters'
Enter the branch your want to test against, and click 'Build'
Jenkins job will make an E release with pkgrole='jenkins', and pkgname='heron-integration-test',
and then launch the tests with this release.
To run the tests locally (although not that useful),
make
cd build/integration-test
./scripts/test_launcher.sh local