Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

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

  • Loading branch information...
commit 1cd2f51eb43f9ed043982770b4efd5f28f53f302 1 parent 687d2e9
@zsiciarz zsiciarz authored
View
4 django/contrib/admin/tests.py
@@ -1,3 +1,5 @@
+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:
View
9 docs/internals/contributing/writing-code/unit-tests.txt
@@ -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
View
5 tests/regressiontests/views/tests/i18n.py
@@ -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 @@ def testI18NWithLocalePaths(self):
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'
View
10 tests/runtests.py
@@ -301,7 +301,12 @@ def paired_tests(paired_test, options, test_labels):
'--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 @@ def paired_tests(paired_test, options, test_labels):
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:
Please sign in to comment.
Something went wrong with that request. Please try again.