Skip to content

realpython/django-slow-tests

Repository files navigation

django-slowtests

https://travis-ci.org/realpython/django-slow-tests.svg?branch=master https://coveralls.io/repos/realpython/django-slow-tests/badge.svg?branch=master

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.

About

Locate your slowest tests.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages