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