diff --git a/.travis.yml b/.travis.yml
index 6d5b43c2f0350dd9cb3f7e526f66c7d87fe23a7d..c9638b02a2f6fd16d76e52797c9da8113a8abcf4 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -19,7 +19,7 @@ matrix:
     - python: "3.6.1"
       env: TOXENV=lint
     - python: "3.6.1"
-      env: TOXENV=pylint PYLINT_ARGS=--jobs=0
+      env: TOXENV=pylint PYLINT_ARGS=--jobs=0 TRAVIS_WAIT=30
     - python: "3.6.1"
       env: TOXENV=typing
     - python: "3.6.1"
@@ -33,4 +33,4 @@ cache:
     - $HOME/.cache/pre-commit
 install: pip install -U tox
 language: python
-script: travis_wait 50 tox --develop
+script: ${TRAVIS_WAIT:+travis_wait $TRAVIS_WAIT} tox --develop
diff --git a/tox.ini b/tox.ini
index 2898c410b2ad0f561c069c219fb0b11d42152218..dc2a9f79b90de1c9488fbd0adba82d23024f6ecb 100644
--- a/tox.ini
+++ b/tox.ini
@@ -5,19 +5,21 @@ skip_missing_interpreters = True
 [testenv]
 basepython = {env:PYTHON3_PATH:python3}
 commands =
-     pytest --timeout=9 --durations=10 -qq -o console_output_style=count -p no:sugar {posargs}
+     pytest --timeout=9 --durations=10 -n auto --dist=loadfile -qq -o console_output_style=count -p no:sugar {posargs}
      {toxinidir}/script/check_dirty
 deps =
      -r{toxinidir}/requirements_test_all.txt
      -c{toxinidir}/homeassistant/package_constraints.txt
+     pytest-xdist
 
 [testenv:cov]
 commands =
-     pytest --timeout=9 --durations=10 -qq -o console_output_style=count -p no:sugar --cov --cov-report= {posargs}
+     pytest --timeout=9 --durations=10 -n auto --dist=loadfile -qq -o console_output_style=count -p no:sugar --cov --cov-report= {posargs}
      {toxinidir}/script/check_dirty
 deps =
      -r{toxinidir}/requirements_test_all.txt
      -c{toxinidir}/homeassistant/package_constraints.txt
+     pytest-xdist
 
 [testenv:pylint]
 ignore_errors = True