Hi all!

The build time of Flink with all tests is nearing 1h on Travis for the
shortest run.
It is good that we do excessive testing, there are many mechanisms that
need that.

I have also seen that a lot of fixes that could be tested in a UnitTest
style are actually tested as a full Flink program (Integration test style)

While these tests are always easier to write, they have two problems:
  - The bring up the build time by about 5 secs per test
  - They are often not as targeted to the problem as a UnitTest

I would like to encourage everyone to keep this in mind and do Unit tests
in the cases where they are the preferred choice. Please also keep that in
mind when reviewing pull requests.

For Example:
  - API / TypeInformation changes can be very well tested without running
the program. Simply create the program and test the operator's type info.
  - Custom functions can be very well tested in isolation
  - Input/Output formats actually test well in UnitTests.

Integration tests need to be used when verifying behavior across components
/ layers, so keep using them when they need to be used.


Greetings,
Stephan

Reply via email to