diff --git a/LCS/PyCommon/test/t_cache.py b/LCS/PyCommon/test/t_cache.py
index f8e48e0d6d3125628da9837a14551f79492c701a..2cf8ef0aa0124571700fa6c0ebd56e302866d2ab 100644
--- a/LCS/PyCommon/test/t_cache.py
+++ b/LCS/PyCommon/test/t_cache.py
@@ -1,6 +1,7 @@
 import unittest
 from lofar.common.cache import cache
-from lofar.common.test_utils import unit_test
+from lofar.common.test_utils import unit_test, exit_with_skipped_code_if_skip_unit_tests
+exit_with_skipped_code_if_skip_unit_tests()
 
 class TestCache(unittest.TestCase):
 
diff --git a/LCS/PyCommon/test/t_cep4_utils.py b/LCS/PyCommon/test/t_cep4_utils.py
index cbd90b9ed8e41651e4a3cfdf21ccd4206d32dc43..5db799427443dcd3c2e1eaaae5b223e6c941a364 100755
--- a/LCS/PyCommon/test/t_cep4_utils.py
+++ b/LCS/PyCommon/test/t_cep4_utils.py
@@ -24,6 +24,9 @@ import logging
 from lofar.common.cep4_utils import *
 from lofar.common.test_utils import integration_test
 
+from lofar.common.test_utils import exit_with_skipped_code_if_skip_integration_tests
+exit_with_skipped_code_if_skip_integration_tests()
+
 logger = logging.getLogger(__name__)
 
 @integration_test
diff --git a/LCS/PyCommon/test/t_dbcredentials.py b/LCS/PyCommon/test/t_dbcredentials.py
index 87369fe6de6234fde34eb4547f17013f3673b2ca..d2693657507b82b09fd5f988241614b191bce3c1 100644
--- a/LCS/PyCommon/test/t_dbcredentials.py
+++ b/LCS/PyCommon/test/t_dbcredentials.py
@@ -1,5 +1,8 @@
 #!/usr/bin/env python3
 
+from lofar.common.test_utils import exit_with_skipped_code_if_skip_unit_tests
+exit_with_skipped_code_if_skip_unit_tests()
+
 import os
 import unittest
 import tempfile
diff --git a/LCS/PyCommon/test/t_defaultmailaddresses.py b/LCS/PyCommon/test/t_defaultmailaddresses.py
index 4ec4d01fd8f0e89fc7ccdfb0dd61b0206ab3a5fd..315cfb68f7747a7e474b27612c9b585dfe030c8a 100644
--- a/LCS/PyCommon/test/t_defaultmailaddresses.py
+++ b/LCS/PyCommon/test/t_defaultmailaddresses.py
@@ -1,5 +1,8 @@
 #!/usr/bin/env python3
 
+from lofar.common.test_utils import exit_with_skipped_code_if_skip_unit_tests
+exit_with_skipped_code_if_skip_unit_tests()
+
 import unittest
 import tempfile
 from lofar.common.defaultmailaddresses import PipelineEmailConfig
diff --git a/LCS/PyCommon/test/t_json_utils.py b/LCS/PyCommon/test/t_json_utils.py
index 78609dbf21d6deb06cdc0cc663d6edd3a8f881fe..a315632d8d5cbca4d82b3a9166c6575f4a2b9cea 100755
--- a/LCS/PyCommon/test/t_json_utils.py
+++ b/LCS/PyCommon/test/t_json_utils.py
@@ -17,6 +17,9 @@
 # You should have received a copy of the GNU General Public License along
 # with the LOFAR software suite. If not, see <http://www.gnu.org/licenses/>.
 
+from lofar.common.test_utils import exit_with_skipped_code_if_skip_unit_tests
+exit_with_skipped_code_if_skip_unit_tests()
+
 import logging
 logger = logging.getLogger(__name__)
 logging.basicConfig(format='%(asctime)s %(process)s %(threadName)s %(levelname)s %(message)s', level=logging.DEBUG)
diff --git a/LCS/PyCommon/test/t_methodtrigger.py b/LCS/PyCommon/test/t_methodtrigger.py
index 5df4e2cf85f563244475129cc6ff7c4e83f1d4f8..064085e7077ca3c98b1231b840baaa673e041479 100644
--- a/LCS/PyCommon/test/t_methodtrigger.py
+++ b/LCS/PyCommon/test/t_methodtrigger.py
@@ -1,3 +1,6 @@
+from lofar.common.test_utils import exit_with_skipped_code_if_skip_unit_tests
+exit_with_skipped_code_if_skip_unit_tests()
+
 import unittest
 from lofar.common.methodtrigger import MethodTrigger
 from lofar.common.test_utils import unit_test
diff --git a/LCS/PyCommon/test/t_postgres.py b/LCS/PyCommon/test/t_postgres.py
index 24d59b095a9810a1e1283d8f12d674e1f4535af4..8d8b77463e8eae107ce7c109fd77b18aa54d96c3 100755
--- a/LCS/PyCommon/test/t_postgres.py
+++ b/LCS/PyCommon/test/t_postgres.py
@@ -1,5 +1,8 @@
 #!/usr/bin/env python3
 
+from lofar.common.test_utils import exit_with_skipped_code_if_skip_integration_tests
+exit_with_skipped_code_if_skip_integration_tests()
+
 import unittest
 from unittest import mock
 from lofar.common.postgres import *
diff --git a/LCS/PyCommon/test/t_test_utils.py b/LCS/PyCommon/test/t_test_utils.py
index 976fe5e0410e812a23d72fa0860e2efd980a3275..eeabd724a006307eeb231460fa9fe986e8ff5c07 100644
--- a/LCS/PyCommon/test/t_test_utils.py
+++ b/LCS/PyCommon/test/t_test_utils.py
@@ -1,5 +1,8 @@
 #!/usr/bin/env python3
 
+from lofar.common.test_utils import exit_with_skipped_code_if_skip_unit_tests
+exit_with_skipped_code_if_skip_unit_tests()
+
 import unittest
 import tempfile
 from lofar.common.test_utils import *
diff --git a/LCS/PyCommon/test/t_util.py b/LCS/PyCommon/test/t_util.py
index b150d0c29e946c81b358c2a85a8f10843357146b..fdb48f516ca561ba77bf1cdf865ce0540357024b 100644
--- a/LCS/PyCommon/test/t_util.py
+++ b/LCS/PyCommon/test/t_util.py
@@ -1,5 +1,8 @@
 #!/usr/bin/env python3
 
+from lofar.common.test_utils import exit_with_skipped_code_if_skip_unit_tests
+exit_with_skipped_code_if_skip_unit_tests()
+
 import unittest
 import tempfile
 from lofar.common.util import *
diff --git a/LCS/PyCommon/test_utils.py b/LCS/PyCommon/test_utils.py
index d4fb731466fd7928d7932e92568853d0494013b3..e62df41336eb9585a60c2b132f1ce1bafd3b686d 100644
--- a/LCS/PyCommon/test_utils.py
+++ b/LCS/PyCommon/test_utils.py
@@ -52,6 +52,15 @@ def skip_unit_tests() -> bool:
     '''returns a boolen True of the environment var SKIP_UNIT_TESTS has been set to a 'true' value'''
     return os.environ.get('SKIP_UNIT_TESTS', default='False').lower() in ['1', 'true', 'on']
 
+def exit_with_skipped_code_if_skip_unit_tests():
+    '''exit with code 3 (SKIPPED) when the environment var SKIP_UNIT_TESTS has been set to a 'true' value'''
+    if skip_unit_tests():
+        exit(3)
+
+def exit_with_skipped_code_if_skip_integration_tests():
+    '''exit with code 3 (SKIPPED) when the environment var SKIP_INTEGRATION_TESTS has been set to a 'true' value'''
+    if skip_integration_tests():
+        exit(3)
 
 # decorators for selective tests
 integration_test = unittest.skipIf(skip_integration_tests(),