polishing run_tests.py
diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py
index 3803e8c..8e8a05e 100755
--- a/tools/run_tests/run_tests.py
+++ b/tools/run_tests/run_tests.py
@@ -526,7 +526,7 @@
 _WINDOWS_CONFIG = {
     'dbg': 'Debug',
     'opt': 'Release',
-    'gcov': 'Release',
+    'gcov': 'Debug',
     }
 
 
@@ -749,8 +749,15 @@
   make_targets[makefile] = make_targets.get(makefile, set()).union(
       set(l.make_targets(args.regex)))
 
+def build_step_environ(cfg):
+  environ = {'CONFIG': cfg}
+  msbuild_cfg = _WINDOWS_CONFIG[cfg]
+  if msbuild_cfg:
+    environ['MSBUILD_CONFIG'] = msbuild_cfg
+  return environ
+
 build_steps = list(set(
-                   jobset.JobSpec(cmdline, environ={'CONFIG': cfg}, flake_retries=5)
+                   jobset.JobSpec(cmdline, environ=build_step_environ(cfg), flake_retries=5)
                    for cfg in build_configs
                    for l in languages
                    for cmdline in l.pre_build_steps()))
@@ -758,13 +765,13 @@
   make_commands = itertools.chain.from_iterable(make_jobspec(cfg, list(targets), makefile) for cfg in build_configs for (makefile, targets) in make_targets.iteritems())
   build_steps.extend(set(make_commands))
 build_steps.extend(set(
-                   jobset.JobSpec(cmdline, environ={'CONFIG': cfg}, timeout_seconds=10*60)
+                   jobset.JobSpec(cmdline, environ=build_step_environ(cfg), timeout_seconds=10*60)
                    for cfg in build_configs
                    for l in languages
                    for cmdline in l.build_steps()))
 
 post_tests_steps = list(set(
-                        jobset.JobSpec(cmdline, environ={'CONFIG': cfg})
+                        jobset.JobSpec(cmdline, environ=build_step_environ(cfg))
                         for cfg in build_configs
                         for l in languages
                         for cmdline in l.post_tests_steps()))