Frequently asked questions¶
I’m using Django 1.11+ and monkeytype run manage.py test
generates no traces.¶
Django 1.11 enabled parallel test runs by default. This means your tests run in
separate subprocesses; MonkeyType is tracing only the main supervisor process,
which runs only Django code (that is excluded from tracing by the default code
filter). To get traces, use --parallel 1
when running your tests under
MonkeyType tracing.
I’m using Django, and I get an AppRegistryNotReady exception when I run monkeytype.¶
You need to use the cli_context()
config method
to call django.setup()
.
I run tests against my package installed in site-packages, and I get no traces.¶
The default code_filter()
excludes all code from the standard library and site-packages
, on the
assumption that it is third-party code that isn’t useful to trace. If you want
to trace calls to a package in site-packages
, you can define
your own custom code filter.
Why did my test coverage measurement stop working?¶
MonkeyType uses the same sys.setprofile hook that coverage.py uses to measure Python code coverage, so you can’t use MonkeyType and coverage measurement together. If you want to run your tests under MonkeyType tracing, disable coverage measurement for that run, and vice versa.