Skip to content

Setup Java based Integration Tests

Closes #166 and adds Java based integration Tests. Depends on #374 (closed). The tests need a valid docker environment to run in the pipeline: supported docker envs

ADDS:

  • gradle integration test plugin
  • common integration test structures under commons/textfixures
  • logger test under commons/test
  • integration tests to all UC implementations

This MR is based on !99. Therefore i use:

  • test containers to start a kafka, a schemaregisty and the load generator in an accessible local docker env.
  • Kafka 4 Junit to access the kafka broker via methods
  • log-captor to capture the log of the suts.

The integration tests of UC1, simply test whether the log of the sut contains something(the ActivePowerRecords). For the other UCs, the kafka output topic is checked whether it contains results. The tests for UCs3 are deactivated for flink, beam and hazelcast jet as these implementations can only be configured with days in the aggregation window size configurations. Therefore tests would need to run at least one day to confirm results or the configuration options should be changed.

TODO:

  • Adapt to new gradle project structure.
  • Update dependencies.
  • Change logging in a way to be able to access the logs.
  • Find a way to start sut:
    • WorkloadGenerator
    • KafkaStreams
    • Flink
    • Beam
    • HazelcastJet
  • Find better project naming and package structure.
  • Move every test to the corresponding subproject.
  • Move common integration test structure to the commons package.
  • Externalize Kafka parts and use testcontainer kafka read.
  • Write tests for all use cases.
  • Add detailed description.
Edited by Lorenz Boguhn

Merge request reports