pytest-dev / pytest-django

A Django plugin for pytest.
https://pytest-django.readthedocs.io/
Other
1.37k stars 344 forks source link

`SimpleTestCase` triggers database migrations #1049

Closed flaeppe closed 4 weeks ago

flaeppe commented 1 year ago

The default implementation of SimpleTestCase disables database queries per default, which is why I'm thinking that migrating the database could conditionally happen depending on the value of SimpleTestCase.databases?

SimpleTestCase disallows database queries by default. This helps to avoid executing write queries which will affect other tests since each SimpleTestCase test isn’t run in a transaction. If you aren’t concerned about this problem, you can disable this behavior by setting the databases class attribute to 'all' on your test class.

Ref: https://docs.djangoproject.com/en/4.1/topics/testing/tools/#django.test.SimpleTestCase.databases

marianobianchi commented 1 year ago

I'm having the same issue. It will be great to have this fixed because sometimes the difference in testing times between pytest and django tests are big because of this (i.e: django tests take 80s to finish and pytest tests take 145s)