Skip to content

Separate unit and integration tests

Readings


As a Silkaj developer and packager, I would like to have the tests separated by their kinds. The tests should use as less possible network access to speed-up the tests with mock usage.

  • Unit tests
  • Integration tests
  • end-to-end tests

Mock as much as possible

Following tests requires network access:

  • test_end_to_end
  • blockchain/test_verify
  • money/test_tx_file
  • wot/test_membership

Mock them if possible to be able to move them to the unit directory. Do not bother if the tests are to difficult to mock, since they will get deleted in next milestone.


Potential splits

  • patched/
  • unit/
  • integration/
    • fully patched/
    • partially_patched/: Requires network access
    • end_to_end?

  • Split tests between those which requires network_access and those who don’t?
  • Split tests between unit, integration and end-to-end once? How?
    • unit, integration end_to_end directories ?
    • {blockchain,money,wot}/test_{unit,integration,end_to_end}_$cmd_name?

Gitlab CI jobs

  • Run unit tests on all supported Python versions
  • Run integration/end-to-end tests on latest Python version
Edited by Moul
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information