#32602: Clarify wording re: parallel testing and test case vs. test case class
-------------------------------------+-------------------------------------
     Reporter:  Chris Jerdonek       |                    Owner:  nobody
         Type:                       |                   Status:  new
  Cleanup/optimization               |
    Component:  Testing framework    |                  Version:  3.1
     Severity:  Normal               |               Resolution:
     Keywords:                       |             Triage Stage:
                                     |  Unreviewed
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------
Description changed by Chris Jerdonek:

Old description:

> Currently, there are some places in the docs, code, and code comments
> that aren't quite clear or right in the way they talk about parallel
> testing as it relates to test cases versus test case classes.
>
> For example, here in the docs:
> https://docs.djangoproject.com/en/3.1/topics/testing/advanced/#django.test.runner.DiscoverRunner
> it says:
>
> > If there are fewer test cases than configured processes, Django will
> reduce the number of processes accordingly.
>
> But it should say, "If there are fewer test case ''classes'' than
> configured processes."
>
> Similarly, this code comment:
> https://github.com/django/django/blob/41850eec99366a51f98123f7c51e5bc5a8b2798c/django/test/runner.py#L653-L654
> should say:
>
> {{{#!python
> # Since tests are distributed across processes on a per-TestCase
> # *class* basis, there's no need for more processes than TestCase
> # *classes*.
> }}}
>
> And also, `partition_suite_by_case()`:
> https://github.com/django/django/blob/41850eec99366a51f98123f7c51e5bc5a8b2798c/django/test/runner.py#L845
> should really be called something like `partition_suite_by_class()` or
> `partition_suite_by_test_class()` since it groups by `type`, and the
> docstring updated accordingly.
>
> I think this is subtle but important because, without being clear, it's
> easy for people to mistakenly think that the parallel test runner is
> parallelizing individual test cases, when it's really distributing out
> the test cases grouped by class.

New description:

 Currently, there are some places in the docs, code, and code comments that
 aren't quite clear or right in the way they talk about parallel testing as
 it relates to test cases versus test case classes.

 For example, here in the docs:
 
https://docs.djangoproject.com/en/3.1/topics/testing/advanced/#django.test.runner.DiscoverRunner
 it says:

 > If there are fewer test cases than configured processes, Django will
 reduce the number of processes accordingly.

 But it should say, "If there are fewer test case ''classes'' than
 configured processes."

 Here is similar language elsewhere in the docs:
 https://docs.djangoproject.com/en/3.1/ref/django-admin/#envvar-
 DJANGO_TEST_PROCESSES

 Similarly, this code comment:
 
https://github.com/django/django/blob/41850eec99366a51f98123f7c51e5bc5a8b2798c/django/test/runner.py#L653-L654
 should say:

 {{{#!python
 # Since tests are distributed across processes on a per-TestCase
 # *class* basis, there's no need for more processes than TestCase
 # *classes*.
 }}}

 And also, `partition_suite_by_case()`:
 
https://github.com/django/django/blob/41850eec99366a51f98123f7c51e5bc5a8b2798c/django/test/runner.py#L845
 should really be called something like `partition_suite_by_class()` or
 `partition_suite_by_test_class()` since it groups by `type`, and the
 docstring updated accordingly.

 I think this is subtle but important because, without being clear, it's
 easy for people to mistakenly think that the parallel test runner is
 parallelizing individual test cases, when it's really distributing out the
 test cases grouped by class.

--

-- 
Ticket URL: <https://code.djangoproject.com/ticket/32602#comment:1>
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/067.1d729bb292d98864d966a6327bc56cc4%40djangoproject.com.

Reply via email to