Commit 1cd2f51e authored by Zbigniew Siciarz's avatar Zbigniew Siciarz
Browse files

Added test runner option to skip Selenium tests (#19854).

parent 687d2e96
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
import os

from django.test import LiveServerTestCase
from django.utils.module_loading import import_by_path
from django.utils.unittest import SkipTest
@@ -8,6 +10,8 @@ class AdminSeleniumWebDriverTestCase(LiveServerTestCase):

    @classmethod
    def setUpClass(cls):
        if os.environ.get('DJANGO_SKIP_SELENIUM_TESTS', False):
            raise SkipTest('Selenium tests skipped by explicit request')
        try:
            cls.selenium = import_by_path(cls.webdriver_class)()
        except Exception as e:
+9 −0
Original line number Diff line number Diff line
@@ -136,6 +136,15 @@ Then, run the tests normally, for example:

    ./runtests.py --settings=test_sqlite admin_inlines

If you have Selenium installed but for some reason don't want to run these tests
(for example to speed up the test suite), use the ``--skip-selenium`` option
of the test runner.

.. code-block:: bash

    ./runtests.py --settings=test_sqlite --skip-selenium admin_inlines


.. _running-unit-tests-dependencies:

Running all the tests
+5 −0
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@
from __future__ import absolute_import

import gettext
import os
from os import path

from django.conf import settings
@@ -176,6 +177,10 @@ class JsI18NTestsMultiPackage(TestCase):
                    javascript_quote('este texto de app3 debe ser traducido'))


skip_selenium = os.environ.get('DJANGO_SKIP_SELENIUM_TESTS', False)


@unittest.skipIf(skip_selenium, 'Selenium tests skipped by explicit request')
@unittest.skipUnless(firefox, 'Selenium not installed')
class JavascriptI18nTests(LiveServerTestCase):
    urls = 'regressiontests.views.urls'
+9 −1
Original line number Diff line number Diff line
@@ -301,7 +301,12 @@ if __name__ == "__main__":
        '--liveserver', action='store', dest='liveserver', default=None,
        help='Overrides the default address where the live server (used with '
             'LiveServerTestCase) is expected to run from. The default value '
             'is localhost:8081.'),
             'is localhost:8081.')
    parser.add_option(
        '--skip-selenium', action='store_true', dest='skip_selenium',
        default=False,
        help='Skip running Selenium tests even it Selenium itself is '
             'installed. By default these tests are not skipped.')
    options, args = parser.parse_args()
    if options.settings:
        os.environ['DJANGO_SETTINGS_MODULE'] = options.settings
@@ -314,6 +319,9 @@ if __name__ == "__main__":
    if options.liveserver is not None:
        os.environ['DJANGO_LIVE_TEST_SERVER_ADDRESS'] = options.liveserver

    if options.skip_selenium:
        os.environ['DJANGO_SKIP_SELENIUM_TESTS'] = '1'

    if options.bisect:
        bisect_tests(options.bisect, options, args)
    elif options.pair: