diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py
index d678721274f39c3d652a364986b1652ed9e0b81d..00831d2d7462e648ec4b7b751b22907d29ca63c1 100755
--- a/tools/run_tests/run_tests.py
+++ b/tools/run_tests/run_tests.py
@@ -13,6 +13,7 @@ import watch_dirs
 
 # flags required for make for each configuration
 _CONFIGS = ['dbg', 'opt', 'tsan', 'msan', 'asan']
+_MAKE_TEST_TARGETS = ['buildtests_c', 'buildtests_cxx']
 
 # parse command line
 argp = argparse.ArgumentParser(description='Run grpc tests.')
@@ -44,9 +45,11 @@ def _build_and_run(check_cancelled):
   if not jobset.run(
       (['make',
         '-j', '%d' % (multiprocessing.cpu_count() + 1),
-        'buildtests_c',
+        target,
         'CONFIG=%s' % cfg]
-       for cfg in configs), check_cancelled, maxjobs=1):
+       for cfg in configs
+       for target in _MAKE_TEST_TARGETS),
+      check_cancelled, maxjobs=1):
     sys.exit(1)
 
   # run all the tests