-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Speed up tests #293
Speed up tests #293
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To me it looks good :) Very cool idea
isn't there a better way to parallelize the tests? It seems a bit an overhead to maintain a bunch of similar files |
Currently the tests are being parallelized in two ways:
The latter way is the simplest, but for some reason one of the logger tests fails if you run them in parallel but not sequentially. This suggests that there could be some dependencies between the tests, which, if true, would be a sign that they probably should be changed a bit. Right now, the only tests that are parallelized are the use-case tests. The other ones are so fast that there is no need. In terms of the overhead, the only thing I can think of is that if you add a new folder, you also have to add a script for the folder. There is no change needed between the scripts, other than updating the folder name. |
As the branch name suggests, I would include in this PR also the tests on the user installation of itwinai. Also, it would be nice to add that as a prerequisite to the action that publishes new releases to PyPI. In other words, I think it would be nice to test user installation upon the creation of a new release, and prevent the creation of a new release if the user installation fails. A similar concept could be applied to unit and integration tests + container CI/CD. In other words, do not release until test and containers are green |
@matbun Regarding testing the user installation: When I was looking into this earlier, I came to the conclusion that what we are looking for is essentially already implemented. The Regarding the release: Since we are installing |
Summary
Since the tests are quite slow, it would be helpful to have them run in parallel. This PR does this by using
pytest-xdist
. Additionally, it removes the build for Horovod, removes the CI tests for TensorFlow, and install the dependencies withuv
instead ofpip
, speeding up the setup time for tests significantly.Old time for tests to complete: 39 minutes
New time for tests to complete: 6 minutes
Related issue(s) : #294