#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.