Skip to content

Commit

Permalink
Merge pull request django#781 from zsiciarz/ticket_19854
Browse files Browse the repository at this point in the history
Fixed #19854 -- Added test runner option to skip Selenium tests
  • Loading branch information
honzakral committed Feb 23, 2013
2 parents 335a060 + 1cd2f51 commit a05ab44
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 1 deletion.
4 changes: 4 additions & 0 deletions django/contrib/admin/tests.py
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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:
Expand Down
9 changes: 9 additions & 0 deletions docs/internals/contributing/writing-code/unit-tests.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
5 changes: 5 additions & 0 deletions tests/regressiontests/views/tests/i18n.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
from __future__ import absolute_import

import gettext
import os
from os import path

from django.conf import settings
Expand Down Expand Up @@ -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'
Expand Down
10 changes: 9 additions & 1 deletion tests/runtests.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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:
Expand Down

0 comments on commit a05ab44

Please sign in to comment.