diff --git a/.gitattributes b/.gitattributes
index 204996f1c72458a15abafd05c2d5b641c2e3bae8..8cc63d9d5269faf2ce312da51c9f7a66032ae2fd 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -2614,6 +2614,7 @@ LCS/Messaging/python/messaging/test/t_messagebus.py -text
 LCS/Messaging/python/messaging/test/t_messagebus.run -text
 LCS/Messaging/python/messaging/test/t_messagebus.sh -text
 LCS/Messaging/python/messaging/test/t_messages.py -text
+LCS/Messaging/python/messaging/test/t_messages.run -text
 LCS/Messaging/python/messaging/test/t_messages.sh -text
 LCS/Messaging/src/CMakeLists.txt -text
 LCS/Messaging/src/DefaultSettings.cc -text
diff --git a/LCS/Messaging/python/messaging/test/t_messages.run b/LCS/Messaging/python/messaging/test/t_messages.run
new file mode 100755
index 0000000000000000000000000000000000000000..b38b2b90bbc09fa72f5c8fb18ccdfc2a967444ae
--- /dev/null
+++ b/LCS/Messaging/python/messaging/test/t_messages.run
@@ -0,0 +1,29 @@
+#!/bin/sh -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