diff --git a/tests/run-tests.py b/tests/run-tests.py
index 98f21e4d96331235bdebfd074822988aab791a58_dGVzdHMvcnVuLXRlc3RzLnB5..41f2fa72fa82eb2bb5196300e0c77b5d2f621ccb_dGVzdHMvcnVuLXRlc3RzLnB5 100755
--- a/tests/run-tests.py
+++ b/tests/run-tests.py
@@ -362,5 +362,6 @@
         # when they happen.
         nohome = ''
     cmd = ('%s setup.py %s clean --all'
+           ' build --build-base="%s"'
            ' install --force --prefix="%s" --install-lib="%s"'
            ' --install-scripts="%s" %s >%s 2>&1'
@@ -365,7 +366,7 @@
            ' install --force --prefix="%s" --install-lib="%s"'
            ' --install-scripts="%s" %s >%s 2>&1'
-           % (sys.executable, pure, INST, PYTHONDIR, BINDIR, nohome,
-              installerrs))
+           % (sys.executable, pure, os.path.join(HGTMP, "build"),
+              INST, PYTHONDIR, BINDIR, nohome, installerrs))
     vlog("# Running", cmd)
     if os.system(cmd) == 0:
         if not options.verbose: