You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I think we're all a bit hateful towards the CI, and for good reasons. I believe that the way to improve it is by having a more consistent testing strategy, and the implementation of it.
I propose of the following strategy (priority included):
Unit tests - Rust modules should have UT to test it's logic. I think this is less of a problem due to the compiler nature to save us from ourselves, so this is least prioritized but should be in new code.
Integration tests
a. Add mirrord-layer tests that doesn't need k8s or real agent. Setup a mock agent to communicate against and verify the flow with different operating system, programming languages and frameworks - this is the most important in my opinion as it's faster to run, most value in terms of integration (checking that hooks work) and saving us time.
b. Add mirrord-agent tests - we already have some integration tests there that create a "fake" client that interacts with the agent, we should have it more robust and cover most agent features.
E2E tests - Should be the bare minimum, sanity microservice that runs in different docker runtimes, and ephemeral containers/job. Focus is on K8S integration. - This is to be done after 2 so then we actually get the benefits of the change. (by reducing tests here)
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
I think we're all a bit hateful towards the CI, and for good reasons. I believe that the way to improve it is by having a more consistent testing strategy, and the implementation of it.
I propose of the following strategy (priority included):
a. Add mirrord-layer tests that doesn't need k8s or real agent. Setup a mock agent to communicate against and verify the flow with different operating system, programming languages and frameworks - this is the most important in my opinion as it's faster to run, most value in terms of integration (checking that hooks work) and saving us time.
b. Add mirrord-agent tests - we already have some integration tests there that create a "fake" client that interacts with the agent, we should have it more robust and cover most agent features.
tl;dr -> implement IT, reduce E2E, add UT.
Beta Was this translation helpful? Give feedback.
All reactions