diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..c65a73ec92a3aacf13019014429f712fa6427511
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,6 @@
+# CMake directories
+cmake-build-debug/
+tests/cmake-build-debug/
+
+# GoogleTest directories
+tests/googletest-subbuild/
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..a238623fbf6f4db52591c8872918b881594b8918
--- /dev/null
+++ b/tests/CMakeLists.txt
@@ -0,0 +1,38 @@
+cmake_minimum_required(VERSION 3.22)
+project(evalhyd_tests)
+
+set(CMAKE_CXX_STANDARD 14)
+
+# GOOGLETEST CONFIG ------------------------------------------------------------
+include(FetchContent)
+FetchContent_Declare(
+        googletest
+        URL https://github.com/google/googletest/archive/e2239ee6043f73722e7aa812a459f54a28552929.zip
+)
+# For Windows: Prevent overriding the parent project's compiler/linker settings
+set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
+FetchContent_MakeAvailable(googletest)
+
+# EVALHYD CONFIG ---------------------------------------------------------------
+include_directories("../deps/xtl/include")
+include_directories("../deps/xtensor/include")
+
+include_directories(../include)
+
+# TEST SUITE -------------------------------------------------------------------
+include_directories(data)
+
+add_executable(
+        evalhyd_tests
+        test_determinist.cpp
+        ../include/evalhyd/utils.hpp
+        ../include/evalhyd/determinist.hpp
+        ../include/evalhyd/deterministic/evaluator.hpp
+        test_probabilist.cpp
+        ../include/evalhyd/probabilist.hpp
+        ../include/evalhyd/probabilistic/evaluator.h
+        ../include/evalhyd/probabilistic/evaluator_brier.cpp
+        ../include/evalhyd/probabilistic/evaluator_elements.cpp
+        ../include/evalhyd/probabilistic/evaluator_utils.cpp
+)
+target_link_libraries(evalhyd_tests gtest gtest_main)
diff --git a/tests/test_determinist.cpp b/tests/test_determinist.cpp
index 81e1ef3781fa42d1ddf4f1f8ba770164f2762830..d4296313f4379ca422a8e9852f0aa6c5ea313b70 100644
--- a/tests/test_determinist.cpp
+++ b/tests/test_determinist.cpp
@@ -9,16 +9,16 @@
 
 #include "evalhyd/determinist.hpp"
 
-TEST(EvalHydDeterministTests, TestNSE) {
+TEST(DeterministTests, TestNSE) {
     // read in data
     std::ifstream ifs;
-    ifs.open("./evalhyd/tests/data/q_obs.csv");
+    ifs.open("./data/q_obs.csv");
     xt::xtensor<double, 2> observed_2d = xt::transpose(xt::load_csv<int>(ifs));
     ifs.close();
 
     xt::xtensor<double, 1> observed_1d = xt::squeeze(observed_2d);
 
-    ifs.open("./evalhyd/tests/data/q_frc.csv");
+    ifs.open("./data/q_frc.csv");
     xt::xtensor<double, 2> forecast_2d = xt::view(
             xt::transpose(xt::load_csv<double>(ifs)), xt::range(0, 5), xt::all()
     );
@@ -44,5 +44,4 @@ TEST(EvalHydDeterministTests, TestNSE) {
 
     xt::xtensor<double, 1> nse_1d = {0.71891219};
     EXPECT_TRUE(xt::allclose(metrics_1d[0], nse_1d));
-
 }
diff --git a/tests/test_probabilist.cpp b/tests/test_probabilist.cpp
index 4d39d258c07e90ce28a80a9582ac06e73f03605b..67870f41acdbcac69264d3c47ef1c3a52574cfbf 100644
--- a/tests/test_probabilist.cpp
+++ b/tests/test_probabilist.cpp
@@ -8,14 +8,14 @@
 
 #include "evalhyd/probabilist.hpp"
 
-TEST(EvalHydProbabilistTests, TestBrier) {
+TEST(ProbabilistTests, TestBrier) {
     // read in data
     std::ifstream ifs;
-    ifs.open("./evalhyd/tests/data/q_obs.csv");
+    ifs.open("./data/q_obs.csv");
     xt::xtensor<double, 2> observed = xt::load_csv<int>(ifs);
     ifs.close();
 
-    ifs.open("./evalhyd/tests/data/q_frc.csv");
+    ifs.open("./data/q_frc.csv");
     xt::xtensor<double, 2> forecast = xt::load_csv<double>(ifs);
     ifs.close();