The convention for creating tests in django is to place tests in modules named tests_*.py
and to run then as python manage.py test
.
This will run all tests defined tests in all modules named tests.
The challenge I have come across is that integration tests may require significant setup of resources e.g. connection to external services. I would imagine mocking out those services in integration tests would cause integration tests to loose their meaning.
I am inquiring therefore of the best practice in running only unit tests and only run integration tests when unit tests are running properly.
The only way I can imagine is to place integration tests
in files named with a different pattern such as integration_*.py
and then use the pattern parameter when running integration tests as specified by the django documentation
Like this python manage.py test --pattern="integration_*"
.
In this way when python manage.py test
is called integration tests will be ignored.
Does anyone have a suggestion or recommendation.
You can use Tagging test to handle this. Try to tag your test by a name then:
./manage.py test --tag=integration
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With