diff --git a/tests_with_gitaly/rhgitaly.py b/tests_with_gitaly/rhgitaly.py
index c7d863a582d149a4f266fcfd625c58064d7ca000_dGVzdHNfd2l0aF9naXRhbHkvcmhnaXRhbHkucHk=..8a82701d0b1735a1c9af92adc31ed23aa8477eba_dGVzdHNfd2l0aF9naXRhbHkvcmhnaXRhbHkucHk= 100644
--- a/tests_with_gitaly/rhgitaly.py
+++ b/tests_with_gitaly/rhgitaly.py
@@ -31,8 +31,11 @@
         socket_path = self.home_dir / 'rhgitaly.socket'
         url = 'unix:%s' % socket_path.resolve()
         env['RHGITALY_LISTEN_URL'] = url
+        rhgitaly_dir = HGITALY_SOURCE_ROOT / 'rust/rhgitaly'
+        subprocess.check_call(('cargo', 'build'),
+                              cwd=rhgitaly_dir)
         with open(self.home_dir / 'rhgitaly.log', 'w') as logf:
             rhgitaly = subprocess.Popen(
                 ('cargo', 'run'),
                 stdout=logf, stderr=logf,
                 env=env,
@@ -34,9 +37,9 @@
         with open(self.home_dir / 'rhgitaly.log', 'w') as logf:
             rhgitaly = subprocess.Popen(
                 ('cargo', 'run'),
                 stdout=logf, stderr=logf,
                 env=env,
-                cwd=HGITALY_SOURCE_ROOT / 'rust/rhgitaly'
+                cwd=rhgitaly_dir,
             )
 
         try: