Commit 34a2809d by Renzo Lucioni

Add option to run Python unit tests in parallel

parent bbba590c
...@@ -9,7 +9,9 @@ help: ...@@ -9,7 +9,9 @@ help:
@echo ' make migrate apply migrations ' @echo ' make migrate apply migrations '
@echo ' make serve start the dev server at localhost:8002 ' @echo ' make serve start the dev server at localhost:8002 '
@echo ' make clean delete generated byte code and coverage reports' @echo ' make clean delete generated byte code and coverage reports'
@echo ' make test_python run unit tests with migrations disabled ' @echo ' make test_javascript run javascript unit tests '
@echo ' make test_python run Python unit tests with migrations disabled '
@echo ' make fast_test_python run Python unit tests in parallel '
@echo ' make quality run pep8 and pylint ' @echo ' make quality run pep8 and pylint '
@echo ' make validate run unit tests, followed by quality checks ' @echo ' make validate run unit tests, followed by quality checks '
@echo ' make html_coverage generate and view HTML coverage report ' @echo ' make html_coverage generate and view HTML coverage report '
...@@ -20,7 +22,6 @@ help: ...@@ -20,7 +22,6 @@ help:
@echo ' make fake_translations install fake translations ' @echo ' make fake_translations install fake translations '
@echo ' make pull_translations pull translations from Transifex ' @echo ' make pull_translations pull translations from Transifex '
@echo ' make update_translations install new translations from Transifex ' @echo ' make update_translations install new translations from Transifex '
@echo ' make test_javascript run javascript unit tests '
@echo ' ' @echo ' '
requirements.js: requirements.js:
...@@ -46,11 +47,16 @@ test_javascript: ...@@ -46,11 +47,16 @@ test_javascript:
gulp test gulp test
test_python: clean test_python: clean
python manage.py compress --settings=ecommerce.settings.test python manage.py compress --settings=ecommerce.settings.test -v0
DISABLE_MIGRATIONS=True coverage run --branch --source=ecommerce ./manage.py test ecommerce \ DISABLE_MIGRATIONS=True coverage run --branch --source=ecommerce ./manage.py test ecommerce \
--settings=ecommerce.settings.test --with-ignore-docstrings --logging-level=DEBUG --settings=ecommerce.settings.test --with-ignore-docstrings --logging-level=DEBUG
coverage report coverage report
fast_test_python: clean
python manage.py compress --settings=ecommerce.settings.test -v0
DISABLE_MIGRATIONS=True DISABLE_ACCEPTANCE_TESTS=True ./manage.py test ecommerce \
--settings=ecommerce.settings.test --processes=4 --with-ignore-docstrings --logging-level=DEBUG
quality: quality:
pep8 --config=.pep8 ecommerce acceptance_tests pep8 --config=.pep8 ecommerce acceptance_tests
pylint --rcfile=pylintrc ecommerce acceptance_tests pylint --rcfile=pylintrc ecommerce acceptance_tests
...@@ -62,7 +68,6 @@ static: ...@@ -62,7 +68,6 @@ static:
python manage.py collectstatic --noinput -v0 python manage.py collectstatic --noinput -v0
python manage.py compress -v0 python manage.py compress -v0
html_coverage: html_coverage:
coverage html && open htmlcov/index.html coverage html && open htmlcov/index.html
......
import os
from django.contrib.messages import constants as MSG from django.contrib.messages import constants as MSG
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.test import TestCase, LiveServerTestCase, override_settings from django.test import TestCase, LiveServerTestCase, override_settings
from nose.plugins.skip import SkipTest
from oscar.core.loading import get_model from oscar.core.loading import get_model
from oscar.test import factories from oscar.test import factories
from selenium.common.exceptions import NoSuchElementException from selenium.common.exceptions import NoSuchElementException
...@@ -37,6 +40,9 @@ class OrderListViewTests(OrderViewTestsMixin, RefundTestMixin, LiveServerTestCas ...@@ -37,6 +40,9 @@ class OrderListViewTests(OrderViewTestsMixin, RefundTestMixin, LiveServerTestCas
@classmethod @classmethod
def setUpClass(cls): def setUpClass(cls):
if os.environ.get('DISABLE_ACCEPTANCE_TESTS') == 'True':
raise SkipTest
cls.selenium = WebDriver() cls.selenium = WebDriver()
super(OrderListViewTests, cls).setUpClass() super(OrderListViewTests, cls).setUpClass()
......
import os
from unittest import skip from unittest import skip
import ddt import ddt
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.test import LiveServerTestCase from django.test import LiveServerTestCase
from nose.plugins.skip import SkipTest
from oscar.core.loading import get_model from oscar.core.loading import get_model
from oscar.test import factories from oscar.test import factories
from selenium.common.exceptions import NoSuchElementException from selenium.common.exceptions import NoSuchElementException
...@@ -24,6 +26,9 @@ ALL_REFUND_STATUSES = ( ...@@ -24,6 +26,9 @@ ALL_REFUND_STATUSES = (
class RefundAcceptanceTestMixin(RefundTestMixin): class RefundAcceptanceTestMixin(RefundTestMixin):
@classmethod @classmethod
def setUpClass(cls): def setUpClass(cls):
if os.environ.get('DISABLE_ACCEPTANCE_TESTS') == 'True':
raise SkipTest
cls.selenium = WebDriver() cls.selenium = WebDriver()
super(RefundAcceptanceTestMixin, cls).setUpClass() super(RefundAcceptanceTestMixin, cls).setUpClass()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment