Repository: incubator-ariatosca
Updated Branches:
refs/heads/ARIA-76-parallel-pytest b3be97ff5 -> 541b2dda8 (forced update)
ARIA-76 Parallelize PyTest
Use the PyTest xdist plugin to parallelize tests in boxed subprocesses.
Through benchmarking we discovered that paralellizing on the number of
CPU cores ("-n auto") provides the best times.
Also update all our testing dependencies.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/repo
Commit:
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/commit/541b2dda
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/541b2dda
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/541b2dda
Branch: refs/heads/ARIA-76-parallel-pytest
Commit: 541b2dda87dad170845d4363446944fdd060f4cd
Parents: 6c2f35e
Author: Tal Liron <[email protected]>
Authored: Mon Jul 10 18:06:05 2017 +0300
Committer: Tal Liron <[email protected]>
Committed: Tue Jul 11 14:15:19 2017 +0300
----------------------------------------------------------------------
tests/requirements.txt | 17 +++++-----
tox.ini | 78 ++++++++++++++++++++++++++++++++++++---------
2 files changed, 72 insertions(+), 23 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/541b2dda/tests/requirements.txt
----------------------------------------------------------------------
diff --git a/tests/requirements.txt b/tests/requirements.txt
index cf57821..d86750b 100644
--- a/tests/requirements.txt
+++ b/tests/requirements.txt
@@ -10,12 +10,13 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-testtools
-fasteners==0.13.0
-sh==1.12.13
+testtools==2.3.0
+fasteners==0.14.1
+sh==1.12.14
psutil==5.2.2
-mock==1.0.1
-pylint==1.6.4
-pytest==3.0.2
-pytest-cov==2.3.1
-pytest-mock==1.2
+mock==2.0.0
+pylint==1.6.5
+pytest==3.1.3
+pytest-cov==2.5.1
+pytest-mock==1.6.0
+pytest-xdist==1.18.1
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/541b2dda/tox.ini
----------------------------------------------------------------------
diff --git a/tox.ini b/tox.ini
index 9849b5e..26abf83 100644
--- a/tox.ini
+++ b/tox.ini
@@ -12,17 +12,24 @@
[tox]
envlist=py27,py26,py27e2e,py26e2e,pywin,py27ssh,pylint_code,pylint_tests,docs
+processes=auto
+
+[tox:jenkins]
+processes=4
[testenv]
-whitelist_externals=rm
+whitelist_externals=
+ rm
passenv=
TRAVIS
PYTHON
PYTHON_VERSION
PYTHON_ARCH
deps=
- -rrequirements.txt
- -rtests/requirements.txt
+ --requirement
+ requirements.txt
+ --requirement
+ tests/requirements.txt
basepython=
py26: python2.6
py27: python2.7
@@ -36,36 +43,77 @@ basepython=
docs: python2.7
[testenv:py27]
-commands=pytest tests --ignore=tests/end2end
--ignore=tests/orchestrator/execution_plugin/test_ssh.py --cov-report
term-missing --cov aria
+commands=
+ pytest tests \
+ --numprocesses={[tox]processes} \
+ --ignore=tests/end2end \
+ --ignore=tests/orchestrator/execution_plugin/test_ssh.py \
+ --cov-report term-missing \
+ --cov aria
[testenv:py26]
-commands=pytest tests --ignore=tests/end2end
--ignore=tests/orchestrator/execution_plugin/test_ssh.py --cov-report
term-missing --cov aria
+commands=
+ pytest tests \
+ --numprocesses={[tox]processes} \
+ --ignore=tests/end2end \
+ --ignore=tests/orchestrator/execution_plugin/test_ssh.py \
+ --cov-report term-missing \
+ --cov aria
[testenv:py27e2e]
-commands=pytest tests/end2end --cov-report term-missing --cov aria
+commands=
+ pytest tests/end2end \
+ --numprocesses={[tox]processes} \
+ --cov-report term-missing \
+ --cov aria
[testenv:py26e2e]
-commands=pytest tests/end2end --cov-report term-missing --cov aria
+commands=
+ pytest tests/end2end \
+ --numprocesses={[tox]processes} \
+ --cov-report term-missing \
+ --cov aria
[testenv:pywin]
-commands=pytest tests --ignore=tests/end2end
--ignore=tests/orchestrator/execution_plugin/test_ssh.py --cov-report
term-missing --cov aria
+commands=
+ pytest tests \
+ --numprocesses={[tox]processes} \
+ --ignore=tests/end2end \
+ --ignore=tests/orchestrator/execution_plugin/test_ssh.py \
+ --cov-report term-missing \
+ --cov aria
[testenv:py27ssh]
-install_command=pip install {opts} {packages} .[ssh]
-commands=pytest tests/orchestrator/execution_plugin/test_ssh.py
+install_command=
+ pip install {opts} {packages} .[ssh]
+commands=
+ pytest tests/orchestrator/execution_plugin/test_ssh.py \
+ --numprocesses={[tox]processes}
[testenv:py26ssh]
-install_command=pip install {opts} {packages} .[ssh]
-commands=pytest tests/orchestrator/execution_plugin/test_ssh.py
+install_command=
+ pip install {opts} {packages} .[ssh]
+commands=
+ pytest tests/orchestrator/execution_plugin/test_ssh.py \
+ --numprocesses={[tox]processes}
[testenv:pylint_code]
-commands=pylint --rcfile=aria/.pylintrc --disable=fixme,missing-docstring aria
extensions/aria_extension_tosca/
+commands=
+ pylint aria extensions/aria_extension_tosca/ \
+ --rcfile=aria/.pylintrc \
+ --disable=fixme,missing-docstring
+
[testenv:pylint_tests]
-commands=pylint --rcfile=tests/.pylintrc --disable=fixme,missing-docstring
tests
+commands=
+ pylint tests \
+ --rcfile=tests/.pylintrc \
+ --disable=fixme,missing-docstring
[testenv:docs]
+install_command=
+ pip install {opts} {packages} \
+ --requirement docs/requirements.txt
commands=
- pip install --requirement docs/requirements.txt
rm --recursive --force docs/html
sphinx-build -W -T -b html docs docs/html