tree: 790a26b7283e438617b3edbb6e20239aa5559261 [path history] [tgz]
  1. features/
  2. minifi/
  3. resources/
  4. steps/
  5. .gitignore
  6. __init__.py
  7. environment.py
  8. MiNiFi_integration_test_driver.py
  9. README.md
docker/test/integration/README.md

Apache MiNiFi Docker System Integration Tests

Apache MiNiFi includes a suite of docker-based system integration tests. These tests are designed to test the integration between distinct MiNiFi instances as well as other systems which are available in docker, such as Apache NiFi.

  • Currently there is an extra unused test mockup for testing TLS with invoke_http.
  • HashContent tests do not actually seem what they advertise to
  • There is a test requirement for PublishKafka, confirming it can handle broker outages. This will be reintroduced when ConsumeKafka is on the master and will have its similar testing requirements implemented.

Test environment

The test framework is written in Python 3 and uses pip3 to add required packages. The framework it uses is python-behave, a BDD testing framework. The feature specifications are written in human readable format in the features directory. Please refer to the behave documentation on how the framework performs testing.

The tests use docker containers so docker engine should be installed on your system. Check the get docker page for further information.

One of the required python packages is the m2crypto package which depends on swig for compilation, so swig should also be installed on your system (e.g. sudo apt install swig on debian based systems).

Execution of one or more flows

Flows are executed immediately upon deployment and according to schedule properties defined in the flow.yml. As such, to minimize test latency it is important to ensure that test inputs are added to the test cluster before flows are deployed. Filesystem events are monitored using event APIs, ensuring that flows are executed immediately upon input availability and output is validated immediately after it is written to disk.