#32914: DiscoverRunner doesn't always group tests by class
-------------------------------------+-------------------------------------
               Reporter:  Chris      |          Owner:  Chris Jerdonek
  Jerdonek                           |
                   Type:             |         Status:  assigned
  Cleanup/optimization               |
              Component:  Testing    |        Version:  dev
  framework                          |
               Severity:  Normal     |       Keywords:
           Triage Stage:             |      Has patch:  0
  Unreviewed                         |
    Needs documentation:  0          |    Needs tests:  0
Patch needs improvement:  0          |  Easy pickings:  0
                  UI/UX:  0          |
-------------------------------------+-------------------------------------
 The following is an issue that has been present in the test runner since
 before I started working on this area of the code this year (e.g. since
 this commit:
 https://github.com/django/django/tree/ec0ff406311de88f4e2a135d784363424fe602aa
 ), but I hadn't taken time to report it until now.

 Namely, if tests are provided to the test runner on the command-line that
 aren't already grouped by test-case class, then `DiscoverRunner` won't
 group them by test-case class.

 Here is an example (class A, class B, then class A again):

 {{{
 $ ./tests/runtests.py
 test_runner.tests.DependencyOrderingTests.test_simple_dependencies
 test_runner.tests.ManageCommandTests.test_custom_test_runner
 test_runner.tests.DependencyOrderingTests.test_chained_dependencies -v3

 Testing against Django installed in '/.../django/django'
 Importing application test_runner
 Found 3 test(s).
 Skipping setup of unused database(s): default, other.
 System check identified no issues (0 silenced).
 test_simple_dependencies (test_runner.tests.DependencyOrderingTests) ...
 ok
 test_custom_test_runner (test_runner.tests.ManageCommandTests) ... ok
 test_chained_dependencies (test_runner.tests.DependencyOrderingTests) ...
 ok

 ----------------------------------------------------------------------
 Ran 3 tests in 0.002s

 OK
 }}}

 This can interfere with things like parallel tests, which assume the tests
 are grouped by class, as well as the new shuffling code.

 This can be fixed in
 
[https://github.com/django/django/blob/f42ccdd835e5b3f0914b5e6f87621c648136ea36/django/test/runner.py#L987-L1015
 reorder_tests()], which already iterates over all tests, as it has logic
 to group tests by test type and remove duplicates.

-- 
Ticket URL: <https://code.djangoproject.com/ticket/32914>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/052.4bbdc34eb7afce0a498d8e2fa08917bd%40djangoproject.com.

Reply via email to