Significant portions of testmon have been rewritten for v 1.0.0. Although the UI is mostly the same, there are some significant differences.

End of python 2.7 support

Testmon requires python 3.6 or higher and pytest 5 or higher.

No subprocess measurement

--testmon-singleprocess was removed (because it's the only option now)

It's not easy to automate the setup of subprocess measurement and therefore to automate testing it. We're not sure if it worked outside of our environment and if anybody used it. If you miss subprocess measurement, please let us know.

Renames

  • --testmon-off has been renamed to --no-testmon.
  • Variable run_variant_expression, which can be specified in pytest configuration file to distinguish different environments was renamed to environment_expression, as it better describes it's meaning.

Playing nice with -m, -k and all other selectors

Old versions of testmon got confused if you deselected some tests through other means than testmon itself. If there are bugs in this they will be squashed with priority.

Quickest tests first

Testmon reorders the test files according to tests per second average so that the quickest tests go first, but the order within the test file or test class is not changed.

New algorithm

Last but not least, we developed a new algorithm and database schema used for selecting tests affected by changes. It will allow us to add new functionality and continue to improve testmon. If there are not many changes determining affected tests should take hundreds of milliseconds at most. If you have to wait for testmon to find out nothing has changed, it's a bug. Please report it. Now also whitespace and comments are taken into account when detecting changes. We hope to improve this in the future and make them insignificant.