#35183: tests - add a new argument "--test-only"
---------------------------------------------+------------------------
               Reporter:  אורי               |          Owner:  nobody
                   Type:  New feature        |         Status:  new
              Component:  Testing framework  |        Version:
               Severity:  Normal             |       Keywords:
           Triage Stage:  Unreviewed         |      Has patch:  0
    Needs documentation:  0                  |    Needs tests:  0
Patch needs improvement:  0                  |  Easy pickings:  0
                  UI/UX:  0                  |
---------------------------------------------+------------------------
 tests - add a new argument "--test-only" (int, >=0) and If run with this
 argument, run only this number of tests.

 Sometimes there are thousands of tests, for example 6,000 tests, and I
 want to run only a random subset of them, for example 200 tests. It should
 be possible with Django.

 The code needed to implement such a feature is:

 In command test:

 {{{
         parser.add_argument(
             "--test-only",
             action="store",
             help="If run with this argument, run only this number of
 tests.",
             type=int,
         )
 }}}

 In DiscoverRunner::__init__:

 {{{
             self.test_only = kwargs.get('test_only', None)
             if (self.test_only is not None):
                 assert (self.test_only >= 0)
 }}}

 In DiscoverRunner::test_suite:

 {{{
         def test_suite(self, tests=()):
             if (self.test_only is not None):
                 tests = tests[:self.test_only]
             return super().test_suite(tests=tests)
 }}}

 Usage:
 {{{
 python manage.py test --shuffle --test-only 200
 }}}

 (It makes more sense to use it with `--shuffle`, but you can also use it
 without it).


 And that's all. :-)
-- 
Ticket URL: <https://code.djangoproject.com/ticket/35183>
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/0107018d9b59238f-e52feea1-1bb8-4f25-9d31-55aeede2a853-000000%40eu-central-1.amazonses.com.

Reply via email to