diff --git a/LCS/Messaging/python/messaging/test/t_RPC.run b/LCS/Messaging/python/messaging/test/t_RPC.run
index ff5140cce0cdcbf9b608287e46524efacebd793a..78025a096a250aae7211dab6c133d46597065e22 100755
--- a/LCS/Messaging/python/messaging/test/t_RPC.run
+++ b/LCS/Messaging/python/messaging/test/t_RPC.run
@@ -10,29 +10,5 @@ queue=$(< /dev/urandom tr -dc [:alnum:] | head -c16)
 qpid-config add exchange topic $queue
 
 # Run the unit test
-# either with or without code coverage measurements,
-# depending wheter coverage has been installed
-
-if type "coverage" > /dev/null; then
-    #run test using python coverage tool
-
-    #erase previous results
-    coverage erase
-
-    #setup coverage config file
-    printf "[report]\nexclude_lines = \n  if __name__ == .__main__.\n  def main\n" > .coveragerc
-
-    coverage run --branch --include=*Messaging/python* t_RPC.py $queue
-    RESULT=$?
-    if [ $RESULT -eq 0 ]; then
-        echo " *** Code coverage results *** "
-        coverage report -m
-        echo " *** End coverage results *** "
-    fi
-    exit $RESULT
-else
-    #coverage not available
-    echo "Please run: 'pip install coverage' to enable code coverage reporting of the unit tests"
-    #run plain test script
-    python t_RPC.py $queue
-fi
+source python-coverage.sh
+python_coverage_test "Messaging/python"  t_RPC.py $queue
diff --git a/LCS/Messaging/python/messaging/test/t_messagebus.run b/LCS/Messaging/python/messaging/test/t_messagebus.run
index 4d4b2a3d7fe5e11397e7b087c275402acbf068d1..a64fd56ccd2c11c40b771f6cfb90ebda604483ab 100755
--- a/LCS/Messaging/python/messaging/test/t_messagebus.run
+++ b/LCS/Messaging/python/messaging/test/t_messagebus.run
@@ -10,29 +10,5 @@ queue=$(< /dev/urandom tr -dc [:alnum:] | head -c16)
 qpid-config add queue $queue
 
 # Run the unit test
-# either with or without code coverage measurements,
-# depending wheter coverage has been installed
-
-if type "coverage" > /dev/null; then
-    #run test using python coverage tool
-
-    #erase previous results
-    coverage erase
-
-    #setup coverage config file
-    printf "[report]\nexclude_lines = \n  if __name__ == .__main__.\n  def main\n" > .coveragerc
-
-    coverage run --branch --include=*Messaging/python* t_messagebus.py $queue
-    RESULT=$?
-    if [ $RESULT -eq 0 ]; then
-        echo " *** Code coverage results *** "
-        coverage report -m
-        echo " *** End coverage results *** "
-    fi
-    exit $RESULT
-else
-    #coverage not available
-    echo "Please run: 'pip install coverage' to enable code coverage reporting of the unit tests"
-    #run plain test script
-    python t_messagebus.py $queue
-fi
+source python-coverage.sh
+python_coverage_test "Messaging/python" t_messagebus.py $queue
diff --git a/LCS/Messaging/python/messaging/test/t_messages.run b/LCS/Messaging/python/messaging/test/t_messages.run
index 1cc5f37320d40620e07e8b02f9d9592068850014..2d82773f1b7a6a80b89bbd455a43c7757aeb2fec 100755
--- a/LCS/Messaging/python/messaging/test/t_messages.run
+++ b/LCS/Messaging/python/messaging/test/t_messages.run
@@ -1,29 +1,5 @@
 #!/bin/bash -e
 
 # Run the unit test
-# either with or without code coverage measurements,
-# depending wheter coverage has been installed
-
-if type "coverage" > /dev/null; then
-    #run test using python coverage tool
-
-    #erase previous results
-    coverage erase
-
-    #setup coverage config file
-    printf "[report]\nexclude_lines = \n  if __name__ == .__main__.\n  def main\n" > .coveragerc
-
-    coverage run --branch --include=*Messaging/python* t_messages.py
-    RESULT=$?
-    if [ $RESULT -eq 0 ]; then
-        echo " *** Code coverage results *** "
-        coverage report -m
-        echo " *** End coverage results *** "
-    fi
-    exit $RESULT
-else
-    #coverage not available
-    echo "Please run: 'pip install coverage' to enable code coverage reporting of the unit tests"
-    #run plain test script
-    python t_messages.py
-fi
+source python-coverage.sh
+python_coverage_test "Messaging/python" t_messages.py
diff --git a/LCS/Messaging/python/messaging/test/t_service_message_handler.run b/LCS/Messaging/python/messaging/test/t_service_message_handler.run
index 67ad6c38702db4a0169108c309572f22434f4109..0cbe002228ef9b283cc734f9b6f373cb62635de2 100755
--- a/LCS/Messaging/python/messaging/test/t_service_message_handler.run
+++ b/LCS/Messaging/python/messaging/test/t_service_message_handler.run
@@ -10,29 +10,5 @@ queue=$(< /dev/urandom tr -dc [:alnum:] | head -c16)
 qpid-config add exchange topic $queue
 
 # Run the unit test
-# either with or without code coverage measurements,
-# depending wheter coverage has been installed
-
-if type "coverage" > /dev/null; then
-    #run test using python coverage tool
-
-    #erase previous results
-    coverage erase
-
-    #setup coverage config file
-    printf "[report]\nexclude_lines = \n  if __name__ == .__main__.\n  def main\n" > .coveragerc
-
-    coverage run --branch --include=*Messaging/python* t_service_message_handler.py $queue
-    RESULT=$?
-    if [ $RESULT -eq 0 ]; then
-        echo " *** Code coverage results *** "
-        coverage report -m
-        echo " *** End coverage results *** "
-    fi
-    exit $RESULT
-else
-    #coverage not available
-    echo "Please run: 'pip install coverage' to enable code coverage reporting of the unit tests"
-    #run plain test script
-    python t_service_message_handler.py $queue
-fi
+source python-coverage.sh
+python_coverage_test "Messaging/python" t_service_message_handler.py $queue
diff --git a/LCS/PyCommon/test/python-coverage.sh b/LCS/PyCommon/test/python-coverage.sh
index 5405b176bbae3dcf1d700f0faf3e7b2fdcab711e..87452ffe0b30e7ae7f362e12f8f6f2523107ef41 100755
--- a/LCS/PyCommon/test/python-coverage.sh
+++ b/LCS/PyCommon/test/python-coverage.sh
@@ -17,9 +17,9 @@ fi
 #
 # Usage:
 #
-#   coverage_test module mytest.py [testarg1 testarg2 ...]
+#   python_coverage_test module mytest.py [testarg1 testarg2 ...]
 #
-function coverage_test {
+function python_coverage_test {
   PYTHON_MODULE=$1
   shift
 
diff --git a/LCS/PyCommon/test/t_dbcredentials.run b/LCS/PyCommon/test/t_dbcredentials.run
index 914aba6d9e8666d7305c3a69f5be4b8e56309380..9497e5890832722cbf5692f586e5aac25c6aac1d 100755
--- a/LCS/PyCommon/test/t_dbcredentials.run
+++ b/LCS/PyCommon/test/t_dbcredentials.run
@@ -1,4 +1,4 @@
 #!/bin/bash
 source python-coverage.sh
 
-coverage_test dbcredentials t_dbcredentials.py
+python_coverage_test dbcredentials t_dbcredentials.py
diff --git a/SAS/OTDB_Services/test/t_TreeService.run b/SAS/OTDB_Services/test/t_TreeService.run
index cbc15c025ffc2ea01c1f2d6c8f06abe849ee0fdd..b1abae81cd982d867afd4de30a1e00b27306730b 100755
--- a/SAS/OTDB_Services/test/t_TreeService.run
+++ b/SAS/OTDB_Services/test/t_TreeService.run
@@ -20,30 +20,5 @@ SERVER_PID=$!
 sleep 3
 
 # Run the unit test
-# either with or without code coverage measurements,
-# depending wheter coverage has been installed
-
-if type "coverage" > /dev/null; then
-    #run test using python coverage tool
-
-    #erase previous results
-    coverage erase
-
-    #setup coverage config file
-    printf "[report]\nexclude_lines = \n  if __name__ == .__main__.\n  def main\n" > .coveragerc
-
-    coverage run --branch --include=*Messaging/python* t_TreeService.py $queue
-    RESULT=$?
-    if [ $RESULT -eq 0 ]; then
-        echo " *** Code coverage results *** "
-        coverage report -m
-        echo " *** End coverage results *** "
-    fi
-    exit $RESULT
-else
-    #coverage not available
-    echo "Please run: 'pip install coverage' to enable code coverage reporting of the unit tests"
-    #run plain test script
-    python t_TreeService.py $queue 
-fi
-
+source python-coverage.sh
+python_coverage_test "Messaging/python" t_TreeService.py $queue
diff --git a/SAS/OTDB_Services/test/t_TreeStatusEvents.run b/SAS/OTDB_Services/test/t_TreeStatusEvents.run
index 6b23a31fe3ee7f6920afe1d139e761881a45ea46..3284bfe30000241b37e44914f97be5eebcd4af9e 100755
--- a/SAS/OTDB_Services/test/t_TreeStatusEvents.run
+++ b/SAS/OTDB_Services/test/t_TreeStatusEvents.run
@@ -20,30 +20,5 @@ SERVICE_PID=$!
 sleep 3
 
 # Run the unit test
-# either with or without code coverage measurements,
-# depending wheter coverage has been installed
-
-if type "coverage" > /dev/null; then
-    #run test using python coverage tool
-
-    #erase previous results
-    coverage erase
-
-    #setup coverage config file
-    printf "[report]\nexclude_lines = \n  if __name__ == .__main__.\n  def main\n" > .coveragerc
-
-    coverage run --branch --include=*Messaging/python* t_TreeStatusEvents.py -D unittest_db -H ${DBHOST} -B $queue
-    RESULT=$?
-    if [ $RESULT -eq 0 ]; then
-        echo " *** Code coverage results *** "
-        coverage report -m
-        echo " *** End coverage results *** "
-    fi
-    exit $RESULT
-else
-    #coverage not available
-    echo "Please run: 'pip install coverage' to enable code coverage reporting of the unit tests"
-    #run plain test script
-    python t_TreeStatusEvents.py -D unittest_db -H ${DBHOST} -B $queue 
-fi
-
+source python-coverage.sh
+python_coverage_test "Messaging/python" t_TreeStatusEvents.py -D unittest_db -H ${DBHOST} -B $queue
diff --git a/SAS/ResourceAssignment/ResourceAssignmentEditor/test/test_webservice.run b/SAS/ResourceAssignment/ResourceAssignmentEditor/test/test_webservice.run
index 3919f00767c19e31b32dee056b20f286e5440180..e929c40a7d057f9338482bf221b9506e15039c7e 100755
--- a/SAS/ResourceAssignment/ResourceAssignmentEditor/test/test_webservice.run
+++ b/SAS/ResourceAssignment/ResourceAssignmentEditor/test/test_webservice.run
@@ -1,25 +1,3 @@
 #!/bin/bash
-
-if type "coverage" > /dev/null; then
-    #run test using python coverage tool
-
-    #erase previous results
-    coverage erase
-
-    #setup coverage config file
-    printf "[report]\nexclude_lines = \n  if __name__ == .__main__.\n  def main\n" > .coveragerc
-
-    coverage run --branch --include=*webservice* test_webservice.py
-    RESULT=$?
-    if [ $RESULT -eq 0 ]; then
-        echo " *** Code coverage results *** "
-        coverage report -m
-        echo " *** End coverage results *** "
-    fi
-    exit $RESULT
-else
-    #coverage not available
-    echo "Please run: 'pip install coverage' to enable code coverage reporting of the unit tests"
-    #run plain test script
-    python test_webservice.py
-fi
+source python-coverage.sh
+python_coverage_test "webservice" test_webservice.py