Skip to content

realpython/django-slow-tests

Repository files navigation

django-slowtests

image

image

image

image

Welcome!

Welcome to the documentation for django-slowtests!

*Code tested on Django 1.6, 1.7, 1.8, 1.9, 1.10 and 1.11 with Python 2.7 and 3.6

Instructions

  1. Install:

    $ pip install django-slowtests
  2. Add the following settings:

    TEST_RUNNER = 'django_slowtests.testrunner.DiscoverSlowestTestsRunner'
    NUM_SLOW_TESTS = 10
    
    # (Optional)
    SLOW_TEST_THRESHOLD_MS = 200  # Only show tests slower than 200ms
    
    # (Optional)
    ALWAYS_GENERATE_SLOW_REPORT = False  # Generate report only when requested using --slowreport flag
  3. Run test suite:

    $ python manage.py test
3.1. Save report to file::

$ python manage.py test --slowreportpath report.json

3.2. Generating full reports to file::

In some situations, you may need to generate full tests reports. To do so, set NUM_SLOW_TESTS to None in your settings and run the following command: $ python manage.py test --slowreportpath report.json

  1. Sample output:

    $ python manage.py test
    Creating test database for alias 'default'...
    ..........
    ----------------------------------------------------------------------
    Ran 10 tests in 0.413s
    
    OK
    Destroying test database for alias 'default'...
    
    Ten slowest tests:
    0.3597s test_detail_view_with_a_future_poll (polls.tests.PollIndexDetailTests)
    0.0284s test_detail_view_with_a_past_poll (polls.tests.PollIndexDetailTests)
    0.0068s test_index_view_with_a_future_poll (polls.tests.PollViewTests)
    0.0047s test_index_view_with_a_past_poll (polls.tests.PollViewTests)
    0.0045s test_index_view_with_two_past_polls (polls.tests.PollViewTests)
    0.0041s test_index_view_with_future_poll_and_past_poll (polls.tests.PollViewTests)
    0.0036s test_index_view_with_no_polls (polls.tests.PollViewTests)
    0.0003s test_was_published_recently_with_future_poll (polls.tests.PollMethodTests)
    0.0002s test_was_published_recently_with_recent_poll (polls.tests.PollMethodTests)
    0.0002s test_was_published_recently_with_old_poll (polls.tests.PollMethodTests)

Running the Tests

You can run the tests via:

$ python setup.py test

or:

$ make test

or:

$ make all

or:

$ python runtests.py

Known Issues

License

This code is distributed under the terms of the MIT license. See the LICENSE file.