diff --git a/src/autodetect.ml b/src/autodetect.ml
index 3ab29fcb3875ca3c17bd391190a6afedf5b28b2c..52f38e5ee2a81603e8035e6ee70a053f4423b1ef 100644
--- a/src/autodetect.ml
+++ b/src/autodetect.ml
@@ -30,6 +30,13 @@ let rec lookup_file dirs filename =
     let file = Stdlib.Filename.concat dir filename in
     if Stdlib.Sys.file_exists file then file else lookup_file dirs filename
 
+let filter_binaries =
+  let d = lazy (Sys.getenv "CAISAR_AUTODETECT_TEST") in
+  fun path ->
+    match Lazy.force d with
+    | Some d -> String.equal (Stdlib.Filename.dirname path) d
+    | None -> true
+
 let autodetection () =
   let debug = Logging.(is_debug_level src_autodetect) in
   if debug then Debug.set_flag Autodetection.debug;
@@ -39,15 +46,15 @@ let autodetection () =
   let data = Autodetection.Prover_autodetection_data.from_file caisar_conf in
   let provers = Autodetection.find_provers data in
   let provers =
-    List.fold_left ~init:[] provers ~f:(fun acc (path, name, version) ->
-      {
-        Autodetection.Partial.name;
-        path;
-        version;
-        shortcut = None;
-        manual = false;
-      }
-      :: acc)
+    List.filter_map provers ~f:(fun (path, name, version) ->
+      Option.some_if (filter_binaries path)
+        {
+          Autodetection.Partial.name;
+          path;
+          version;
+          shortcut = None;
+          manual = false;
+        })
   in
   let config = Whyconf.init_config (Some Stdlib.Filename.null) in
   let provers = Autodetection.compute_builtin_prover provers config data in
diff --git a/tests/aimos.t b/tests/aimos.t
index 0ac820383c49c20deff4bb1dbcc441a94ab251a2..a80cf6d2e97c195e4ba52254488c05e7ffd00b06 100644
--- a/tests/aimos.t
+++ b/tests/aimos.t
@@ -11,6 +11,7 @@ Test verify
   AIMOS 1.0
 
   $ PATH=$(pwd)/bin:$PATH
+  $ CAISAR_AUTODETECT_TEST=$(pwd)/bin
 
   $ caisar verify -L . --format whyml --prover=AIMOS --dataset=test_data.csv - 2>&1 <<EOF
   > theory ACASXU_P5
diff --git a/tests/autodetect.t b/tests/autodetect.t
index 5fee7ec434876b149122756fbe86229d36456e81..8d28c231e13fecf2bc7971f6f997b81bec5cc1eb 100644
--- a/tests/autodetect.t
+++ b/tests/autodetect.t
@@ -32,29 +32,7 @@ Test autodetect
 
   $ PATH=$(pwd)/bin:$PATH
 
-  $ caisar config -d --ltag=Autodetect -v 2>&1 | ./filter_tmpdir.sh
-  <autodetect>Run: ($TESTCASE_ROOT/bin/nnenum.sh --version) > $TMPFILE 2>&1
-  <autodetect>Run: ($TESTCASE_ROOT/bin/pyrat.py --version) > $TMPFILE 2>&1
-  <autodetect>Run: ($TESTCASE_ROOT/bin/saver --version 2>&1 | head -n1 && (which saver > /dev/null 2>&1)) > $TMPFILE 2>&1
-  <autodetect>Run: ($TESTCASE_ROOT/bin/aimos --version) > $TMPFILE 2>&1
-  <autodetect>Run: ($TESTCASE_ROOT/bin/abcrown.sh --version) > $TMPFILE 2>&1
-  <autodetect>Run: ($TESTCASE_ROOT/bin/alt-ergo --version) > $TMPFILE 2>&1
-  <autodetect>Run: ($TESTCASE_ROOT/bin/Marabou --version) > $TMPFILE 2>&1
-  <autodetect>Run: ($TESTCASE_ROOT/bin/cvc5 --version) > $TMPFILE 2>&1
-  <autodetect>0 prover(s) added
-  <autodetect>Generating strategies:
-  <autodetect>Found prover Alt-Ergo version 2.4.0, OK.
-  <autodetect>Found prover CVC5 version 1.0.2, OK.
-  <autodetect>Found prover Marabou version 1.0.+, OK.
-  <autodetect>Found prover PyRAT version 1.1, OK.
-  <autodetect>Found prover PyRAT version 1.1 (alternative: VNNLIB)
-  <autodetect>Found prover PyRAT version 1.1 (alternative: ACAS)
-  <autodetect>Found prover nnenum version dummy-version, OK.
-  <autodetect>Found prover alpha-beta-CROWN version dummy-version, OK.
-  <autodetect>Found prover alpha-beta-CROWN version dummy-version (alternative: ACAS)
-  <autodetect>Found prover SAVer version v1.0, OK.
-  <autodetect>Found prover AIMOS version 1.0, OK.
-  <autodetect>11 prover(s) added
+  $ CAISAR_AUTODETECT_TEST=$(pwd)/bin caisar config -d -v 2>&1 | ./filter_tmpdir.sh
   AIMOS 1.0
   Alt-Ergo 2.4.0
   CVC5 1.0.2
diff --git a/tests/cvc5.t b/tests/cvc5.t
index e55696f37171cd8dc25fa4c1a6da7d5c7d17c4d1..cd2a68e87cb9c9031cbfacebba5d0980a9b94851 100644
--- a/tests/cvc5.t
+++ b/tests/cvc5.t
@@ -5,6 +5,7 @@ Test verify
   This is cvc5 version 1.0.2 [git tag 1.0.2 branch HEAD]
 
   $ PATH=$(pwd)/bin:$PATH
+  $ CAISAR_AUTODETECT_TEST=$(pwd)/bin
 
   $ caisar verify -L . --format whyml --prover=CVC5 --ltag=ProverSpec - 2>&1 <<EOF | ./filter_tmpdir.sh
   > theory CVC5
@@ -231,4 +232,4 @@ Test verify
   (check-sat)
   (get-info :reason-unknown)
   
-  Goal G: Unknown (unknown)
+  Goal G: Timeout
diff --git a/tests/dataset.t b/tests/dataset.t
index 0e965840cde1604939d858d4ed9e0c710be4bd89..3a886a0d730ff2d083b11c8e975ef8770efa179f 100644
--- a/tests/dataset.t
+++ b/tests/dataset.t
@@ -13,6 +13,7 @@ Test verify on dataset
   1.0.+
 
   $ PATH=$(pwd)/bin:$PATH
+  $ CAISAR_AUTODETECT_TEST=$(pwd)/bin
 
   $ caisar verify -L . --format whyml --ltag=ProverSpec --prover=PyRAT --dataset=test_data.csv - 2>&1 <<EOF | ./filter_tmpdir.sh
   > theory T
diff --git a/tests/define.t b/tests/define.t
index b698beb81e1d88d7926f59610d0a8cd501fdbe54..262c67457910fe9496d62a84813a8f08ce75f833 100644
--- a/tests/define.t
+++ b/tests/define.t
@@ -6,6 +6,7 @@ Test interpretation of on-the-fly definition of toplevel constants
   PyRAT 1.1
 
   $ PATH=$(pwd)/bin:$PATH
+  $ CAISAR_AUTODETECT_TEST=$(pwd)/bin
 
   $ cat > file.mlw <<EOF
   > theory T
diff --git a/tests/interpretation_acasxu.t b/tests/interpretation_acasxu.t
index 28695a744ada60305f2c3a18842df557ff5e74ce..5f2dc73451882f8158c88108382adebc4c388ab9 100644
--- a/tests/interpretation_acasxu.t
+++ b/tests/interpretation_acasxu.t
@@ -6,6 +6,7 @@ Test interpret on acasxu
   PyRAT 1.1
 
   $ PATH=$(pwd)/bin:$PATH
+  $ CAISAR_AUTODETECT_TEST=$(pwd)/bin
 
   $ caisar verify --format whyml --prover PyRAT --ltag=ProverSpec - 2>&1 <<EOF | ./filter_tmpdir.sh
   > theory T
diff --git a/tests/interpretation_dataset.t b/tests/interpretation_dataset.t
index 8ce1d6076853bf3f506625105d98ae35f5600ea9..e9551bfdfaffee4abbd1b34036741829aac83a0f 100644
--- a/tests/interpretation_dataset.t
+++ b/tests/interpretation_dataset.t
@@ -10,6 +10,7 @@ Test interpret on dataset
   1.0.+
 
   $ PATH=$(pwd)/bin:$PATH
+  $ CAISAR_AUTODETECT_TEST=$(pwd)/bin
 
   $ caisar verify --format whyml --prover Marabou --ltag=ProverSpec - 2>&1 <<EOF | ./filter_tmpdir.sh
   > theory T
diff --git a/tests/marabou.t b/tests/marabou.t
index 8ded847e994ab771f5e3bf150ec3b166eaba270d..bc9dc999def19953cbf7f9ffb726aacea541ff22 100644
--- a/tests/marabou.t
+++ b/tests/marabou.t
@@ -5,6 +5,7 @@ Test verify
   1.0.+
 
   $ PATH=$(pwd)/bin:$PATH
+  $ CAISAR_AUTODETECT_TEST=$(pwd)/bin
 
   $ caisar verify --format whyml --prover=Marabou --ltag=ProverSpec - 2>&1 <<EOF | ./filter_tmpdir.sh
   > theory T
diff --git a/tests/pyrat.t b/tests/pyrat.t
index 4c36cd0903f0aedcd140eea9e243a4611c96f20e..6a9ba9365404fa5efa397f9c34efcaf1195c117b 100644
--- a/tests/pyrat.t
+++ b/tests/pyrat.t
@@ -5,6 +5,7 @@ Test verify
   PyRAT 1.1
 
   $ PATH=$(pwd)/bin:$PATH
+  $ CAISAR_AUTODETECT_TEST=$(pwd)/bin
 
   $ caisar verify --format whyml --prover=PyRAT --ltag=ProverSpec - 2>&1 <<EOF | ./filter_tmpdir.sh
   > theory PyRAT
diff --git a/tests/pyrat_onnx.t b/tests/pyrat_onnx.t
index f6512e2bc0419ff272fc531ef9f4d5caa1f52898..422a318f9eead41e2ac255a45ce39e9bfd1aa00c 100644
--- a/tests/pyrat_onnx.t
+++ b/tests/pyrat_onnx.t
@@ -5,6 +5,7 @@ Test verify
   PyRAT 1.1
 
   $ PATH=$(pwd)/bin:$PATH
+  $ CAISAR_AUTODETECT_TEST=$(pwd)/bin
 
   $ caisar verify --format whyml --prover=PyRAT --ltag=ProverSpec - 2>&1 <<EOF | ./filter_tmpdir.sh
   > theory PyRAT_ONNX
diff --git a/tests/saver.t b/tests/saver.t
index a05fc8d70b7392ac79a4251c7a461197041700d3..94d471bde24d68110148a3b627b6a02dab1af4db 100644
--- a/tests/saver.t
+++ b/tests/saver.t
@@ -10,6 +10,7 @@ Test verify
   v1.0
 
   $ PATH=$(pwd)/bin:$PATH
+  $ CAISAR_AUTODETECT_TEST=$(pwd)/bin
 
   $ caisar verify -L . --format whyml --prover=SAVer --dataset=test_data.csv - 2>&1 <<EOF | ./filter_tmpdir.sh
   > theory T
diff --git a/tests/verify_json.t b/tests/verify_json.t
index 39773a8285aafb8a3be4c53039fc657749158741..e0cf12c5b7f42ae652dac9abd253baba762d886b 100644
--- a/tests/verify_json.t
+++ b/tests/verify_json.t
@@ -13,6 +13,7 @@ Test verify-json
   PyRAT 1.1
 
   $ PATH=$(pwd)/bin:$PATH
+  $ CAISAR_AUTODETECT_TEST=$(pwd)/bin
 
   $ caisar verify-json --ltag=ProverSpec config.json 2>&1 | ./filter_tmpdir.sh
   [DEBUG]{ProverSpec} Prover-tailored specification:
diff --git a/tests/xgboost.t b/tests/xgboost.t
index ca7e0904fb86acae4e79aa3c3197b331f3f0c1bb..de83fadc188b1240bb0eea1a7d67e813975f74c3 100644
--- a/tests/xgboost.t
+++ b/tests/xgboost.t
@@ -1,6 +1,6 @@
 Test verify
   $ PATH=$(pwd)/bin:$PATH
+  $ CAISAR_AUTODETECT_TEST=$(pwd)/bin
 
   $ caisar verify-xgboost ../lib/xgboost/example/california.json ../lib/xgboost/example/california.csv --prover CVC5 2>&1 | ./filter_tmpdir.sh
-  result: Unknown
-  (unknown)
+  result: Valid