Skip to content

Instantly share code, notes, and snippets.

@scop
Created October 24, 2020 07:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save scop/2de414c6dd90db6b72b8a571814472bd to your computer and use it in GitHub Desktop.
Save scop/2de414c6dd90db6b72b8a571814472bd to your computer and use it in GitHub Desktop.
Why not install tests?
For the majority of users, test code is just waste of space and bandwidth. For example, for Home Assistant, in the full dependency set `du -hc **/tests **/test` reports 82M here (2020-10-24). Granted, most users don't install the full dependency set, so they are affected to a lesser extent, and that's a smallish fraction of the total dep set size, but still.
Proponents of test code inclusion may say it's good to have it around as a usage example. But test code is often not good code to be used as a general use example. It is often entangled with mockery, accesses things that should not be accessed in normal use to begin with, or accesses things in a way that is not supposed to be done outside of tests, etc, or all of that.
Test code can have dependencies that are not the package's runtime dependencies. When these dependencies are not installed along with the package and its real runtime dependencies (hopefully at least these are always excluded!), users must take measures to install them before they are able to run the installed tests.
Test code tends to be more often excluded from installs than installed (which is great). So one cannot generally assume to find tests installed and must prepare to get them separately anyway if the intent is to run them.
Please do include test code in source distributions so anyone building from source is able to run the tests. But do exclude them from runtime installs.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment