diff --git a/scripts/unit-test.py b/scripts/unit-test.py
index d6ca805..e9553b3 100755
--- a/scripts/unit-test.py
+++ b/scripts/unit-test.py
@@ -662,6 +662,7 @@
             self._configure_feature('silent-rules', False),
             self._configure_feature('examples', build_for_testing),
             self._configure_feature('tests', build_for_testing),
+            self._configure_feature('itests', INTEGRATION_TEST),
         ]
         if not TEST_ONLY:
             conf_flags.extend([
@@ -713,7 +714,11 @@
 
     def configure(self, build_for_testing):
         self.build_for_testing = build_for_testing
-        check_call_cmd('cmake', '-DCMAKE_EXPORT_COMPILE_COMMANDS=ON', '.')
+        if INTEGRATION_TEST:
+            check_call_cmd('cmake', '-DCMAKE_EXPORT_COMPILE_COMMANDS=ON',
+                           '-DITESTS=ON', '.')
+        else:
+            check_call_cmd('cmake', '-DCMAKE_EXPORT_COMPILE_COMMANDS=ON', '.')
 
     def build(self):
         check_call_cmd('cmake', '--build', '.', '--', '-j',
@@ -867,6 +872,8 @@
             meson_flags.append(self._configure_option(meson_options, 'tests', build_for_testing))
         if 'examples' in meson_options:
             meson_flags.append(self._configure_option(meson_options, 'examples', build_for_testing))
+        if 'itests' in meson_options:
+            meson_flags.append(self._configure_option(meson_options, 'itests', INTEGRATION_TEST))
         if MESON_FLAGS.get(self.package) is not None:
             meson_flags.extend(MESON_FLAGS.get(self.package))
         try:
@@ -1113,6 +1120,13 @@
     parser.add_argument("-t", "--test-only", dest="TEST_ONLY",
                         action="store_true", required=False, default=False,
                         help="Only run test cases, no other validation")
+    arg_inttests = parser.add_mutually_exclusive_group()
+    arg_inttests.add_argument("--integration-tests", dest="INTEGRATION_TEST",
+                        action="store_true", required=False, default=True,
+                        help="Enable integration tests [default].")
+    arg_inttests.add_argument("--no-integration-tests", dest="INTEGRATION_TEST",
+                        action="store_false", required=False,
+                        help="Disable integration tests.")
     parser.add_argument("-v", "--verbose", action="store_true",
                         help="Print additional package status messages")
     parser.add_argument("-r", "--repeat", help="Repeat tests N times",
@@ -1127,6 +1141,7 @@
     WORKSPACE = args.WORKSPACE
     UNIT_TEST_PKG = args.PACKAGE
     TEST_ONLY = args.TEST_ONLY
+    INTEGRATION_TEST = args.INTEGRATION_TEST
     BRANCH = args.BRANCH
     FORMAT_CODE = args.FORMAT
     if args.verbose:
