diff --git a/scripts/cmake/ConanSetup.cmake b/scripts/cmake/ConanSetup.cmake
index 9b2cb255cc7f8a746427ca709b7c9cbbea66c245..37ddf754d5f4c66293e13be273c432a16e475166 100644
--- a/scripts/cmake/ConanSetup.cmake
+++ b/scripts/cmake/ConanSetup.cmake
@@ -4,12 +4,7 @@ endif()
 string(TOLOWER ${OGS_USE_CONAN} OGS_USE_CONAN_lower)
 if(OGS_USE_CONAN_lower STREQUAL "auto" AND POETRY)
     execute_process(COMMAND ${CMD_COMMAND} poetry add conan=${ogs.minimum_version.conan})
-    find_program(CONAN_CMD conan HINTS
-        ${PROJECT_BINARY_DIR}/.venv/bin
-        ${PROJECT_BINARY_DIR}/.venv/Scripts
-        REQUIRED NO_DEFAULT_PATH
-    )
-    find_program(CONAN_CMD conan HINTS ${PROJECT_BINARY_DIR}/.venv/bin
+    find_program(CONAN_CMD conan HINTS ${LOCAL_VIRTUALENV_BIN_DIRS}
         REQUIRED NO_DEFAULT_PATH
     )
 else()
diff --git a/scripts/cmake/Find.cmake b/scripts/cmake/Find.cmake
index 60fe82bccff58317d21d17383433e30af095263c..14babf80932df2b555ed6a1b11e0cbbe0a5a9903 100644
--- a/scripts/cmake/Find.cmake
+++ b/scripts/cmake/Find.cmake
@@ -54,8 +54,8 @@ find_program(PANDOC_CITEPROC pandoc-citeproc)
 find_program(MODULE_CMD modulecmd
     PATHS /usr/local/modules/3.2.10-1/Modules/3.2.10/bin)
 
-find_program(SNAKEMAKE snakemake)
-find_program(PARSL parsl-visualize)
+find_program(SNAKEMAKE snakemake HINTS ${LOCAL_VIRTUALENV_BIN_DIRS})
+find_program(PARSL parsl-visualize HINTS ${LOCAL_VIRTUALENV_BIN_DIRS})
 
 ######################
 ### Find libraries ###
diff --git a/scripts/cmake/PythonSetup.cmake b/scripts/cmake/PythonSetup.cmake
index 17e68293486274511f641e5b1d8a78e669f38924..8ddb9e5a5eefd6af98a8c7772b33518be6a0f906 100644
--- a/scripts/cmake/PythonSetup.cmake
+++ b/scripts/cmake/PythonSetup.cmake
@@ -32,3 +32,16 @@ if(POETRY)
             ${Python3_ROOT_DIR}/lib/python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}/site-packages)
     endif()
 endif()
+
+set(LOCAL_VIRTUALENV_BIN_DIRS
+    ${PROJECT_BINARY_DIR}/.venv/bin
+    ${PROJECT_BINARY_DIR}/.venv/Scripts
+    CACHE INTERNAL ""
+)
+
+if(POETRY AND BUILD_TESTING)
+    execute_process(COMMAND ${CMD_COMMAND} poetry add
+        snakemake=${ogs.minimum_version.snakemake}
+        parsl=${ogs.minimum_version.parsl}
+    )
+endif()
diff --git a/scripts/test/requirements.txt b/scripts/test/requirements.txt
deleted file mode 100644
index 9bb620c9799ccc651b1b408d7b4953291f652c51..0000000000000000000000000000000000000000
--- a/scripts/test/requirements.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-snakemake==5.19.3
-parsl==1.0.0
diff --git a/web/data/versions.json b/web/data/versions.json
index 30c72701bc86045870bd436b57d9fcbe37a13004..f72dc4a309aa4fa1d803e54291920e27c8365599 100644
--- a/web/data/versions.json
+++ b/web/data/versions.json
@@ -17,7 +17,9 @@
     "vtk": "8.1.2",
     "petsc": "3.11.2",
     "qt": "5.12.4",
-    "python": "3.6"
+    "python": "3.6",
+    "snakemake": "5.19.3",
+    "parsl": "1.0.0"
   },
   "tested_version": {
     "vtk": "8.2.0",