Suppose you have the following files
# mymodule.py
foo_bar = "value"
class MyClass:
FOO = "bar"
# test_mymodule.py
from mymodule import MyClass, foo_bar
def test_module():
assert foo_bar == "value"
assert MyClass.FOO == "bar"
Now running pytest --testmon test_mymodule.py does not rerun test_module() when the value of MyClass.FOO or foo_bar is changed. Even worse, FOO can be completely removed, e.g.
without triggering a re-run.
When running pytest --cov manually, there seems to be a trace
