mirror of
https://github.com/cookiecutter/cookiecutter-django.git
synced 2024-11-25 19:14:03 +03:00
Increase test parallelism
- Split out tests and add markers to control where they are run in Travis - Run each marker on a separate Travis task - Install pytest-xdist to increase parallelism inside each worker - Set xdist parallelism to 3
This commit is contained in:
parent
4b2a62e889
commit
a245651f66
|
@ -13,10 +13,14 @@ before_install:
|
||||||
|
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
- name: Tox Test
|
- name: Test results
|
||||||
script: tox -e py36
|
script: tox -e py36
|
||||||
- name: Black template
|
- name: Run flake8 on result
|
||||||
|
script: tox -e flake8
|
||||||
|
- name: Run black on result
|
||||||
script: tox -e black
|
script: tox -e black
|
||||||
|
- name: Black template
|
||||||
|
script: tox -e black-template
|
||||||
- name: Basic Docker
|
- name: Basic Docker
|
||||||
script: sh tests/test_docker.sh
|
script: sh tests/test_docker.sh
|
||||||
- name: Docker with Celery
|
- name: Docker with Celery
|
||||||
|
|
|
@ -13,4 +13,5 @@ tox==3.10.0
|
||||||
pytest==4.5.0
|
pytest==4.5.0
|
||||||
pytest_cases==1.6.2
|
pytest_cases==1.6.2
|
||||||
pytest-cookies==0.3.0
|
pytest-cookies==0.3.0
|
||||||
|
pytest-xdist==1.28.0
|
||||||
pyyaml==5.1
|
pyyaml==5.1
|
||||||
|
|
|
@ -101,9 +101,10 @@ def test_project_generation(cookies, context, context_combination):
|
||||||
check_paths(paths)
|
check_paths(paths)
|
||||||
|
|
||||||
|
|
||||||
def test_linting_passes(cookies, context_combination):
|
@pytest.mark.flake8
|
||||||
|
def test_flake8_passes(cookies, context_combination):
|
||||||
"""
|
"""
|
||||||
Generated project should pass flake8 & black.
|
Generated project should pass flake8.
|
||||||
|
|
||||||
This is parametrized for each combination from ``context_combination`` fixture
|
This is parametrized for each combination from ``context_combination`` fixture
|
||||||
"""
|
"""
|
||||||
|
@ -114,6 +115,16 @@ def test_linting_passes(cookies, context_combination):
|
||||||
except sh.ErrorReturnCode as e:
|
except sh.ErrorReturnCode as e:
|
||||||
pytest.fail(e)
|
pytest.fail(e)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.black
|
||||||
|
def test_black_passes(cookies, context_combination):
|
||||||
|
"""
|
||||||
|
Generated project should pass black.
|
||||||
|
|
||||||
|
This is parametrized for each combination from ``context_combination`` fixture
|
||||||
|
"""
|
||||||
|
result = cookies.bake(extra_context=context_combination)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
sh.black("--check", "--diff", "--exclude", "migrations", f"{result.project}/")
|
sh.black("--check", "--diff", "--exclude", "migrations", f"{result.project}/")
|
||||||
except sh.ErrorReturnCode as e:
|
except sh.ErrorReturnCode as e:
|
||||||
|
|
12
tox.ini
12
tox.ini
|
@ -1,11 +1,19 @@
|
||||||
[tox]
|
[tox]
|
||||||
skipsdist = true
|
skipsdist = true
|
||||||
envlist = py36,black
|
envlist = py36,flake8,black,black-template
|
||||||
|
|
||||||
[testenv]
|
[testenv]
|
||||||
deps = -rrequirements.txt
|
deps = -rrequirements.txt
|
||||||
commands = pytest {posargs:./tests}
|
commands = pytest -n 3 -m "not flake8" -m "not black" {posargs:./tests}
|
||||||
|
|
||||||
|
[testenv:flake8]
|
||||||
|
deps = -rrequirements.txt
|
||||||
|
commands = pytest -n 3 -m flake8 {posargs:./tests}
|
||||||
|
|
||||||
[testenv:black]
|
[testenv:black]
|
||||||
|
deps = -rrequirements.txt
|
||||||
|
commands = pytest -n 3 -m black {posargs:./tests}
|
||||||
|
|
||||||
|
[testenv:black-template]
|
||||||
deps = black
|
deps = black
|
||||||
commands = black --check hooks tests setup.py docs
|
commands = black --check hooks tests setup.py docs
|
||||||
|
|
Loading…
Reference in New Issue
Block a user