diff --git a/.coveragerc b/.coveragerc
index 0201a4b502d9238026305a1982a8f4a75d8df977..224c472fa2ef92af5c7deeed2b696f0df51e1e35 100644
--- a/.coveragerc
+++ b/.coveragerc
@@ -2,7 +2,6 @@
 # .coveragerc to control coverage.py
 [run]
 parallel = True
-concurrency = multiprocessing
 branch = True
 source = lib
 omit =
diff --git a/share/spack/qa/setup.sh b/share/spack/qa/setup.sh
index 98c79a045711e4ca8658cbedc507572717d14860..4b3f98e330b4dbbbaaa708096ce75ab7e0e9831d 100755
--- a/share/spack/qa/setup.sh
+++ b/share/spack/qa/setup.sh
@@ -11,10 +11,14 @@ SPACK_ROOT="$QA_DIR/../../.."
 . "$SPACK_ROOT/share/spack/setup-env.sh"
 
 # Set up some variables for running coverage tests.
-if [[ "$COVERAGE" == true ]]; then
+if [[ "$COVERAGE" == "true" && "$TEST_SUITE" == "unit" ]]; then
     coverage=coverage
     coverage_run="coverage run"
     coverage_combine="coverage combine"
+elif [[ "$COVERAGE" == "true" && "$TEST_SUITE" == "build" ]]; then
+    coverage=coverage
+    coverage_run="coverage run --concurrency=multiprocessing"
+    coverage_combine="coverage combine"
 else
     coverage=""
     coverage_run=""