diff --git a/pyproject.toml b/pyproject.toml
index 17c998f312d33f8207009bad3db765e253a57de6..f2c248cdf6983caad4b546e780d649f488edc164 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -54,14 +54,16 @@ before-build = [
     "bash .gitlab/ci/cibuildwheel_build_deps_before_build_wheel.sh /host"
 ]
 before-test = [
-    "bash .gitlab/ci/cibuildwheel_build_deps_before_build_wheel.sh /host"
+    "pip install aidge-core",
+    "pip install aidge-backend-cpu",
 ]
 [tool.cibuildwheel.windows]
 before-build = [
     "powershell -File .\\.gitlab\\ci\\cibuildwheel_build_deps_before_build_wheel.ps1"
 ]
 before-test = [
-    "powershell -File .\\.gitlab\\ci\\cibuildwheel_build_deps_before_build_wheel.ps1"
+    "pip install aidge-core",
+    "pip install aidge-backend-cpu",
 ]
 
 
diff --git a/unit_tests/CMakeLists.txt b/unit_tests/CMakeLists.txt
index d33a87b486b8f14eab0cb8e99a9317ee14cbe647..39af9ec9b609b8b2c5685699ac014406ed64df72 100644
--- a/unit_tests/CMakeLists.txt
+++ b/unit_tests/CMakeLists.txt
@@ -1,55 +1,67 @@
-Include(FetchContent)
+include(FetchContent)
 
+# Fetch and make available Catch2 for unit testing
 FetchContent_Declare(
   Catch2
   GIT_REPOSITORY https://github.com/catchorg/Catch2.git
   GIT_TAG        v3.0.1 # or a later release
 )
-
 FetchContent_MakeAvailable(Catch2)
 
+# Gather all source files for the test executable
 file(GLOB_RECURSE src_files "*.cpp")
 set(tests_exe tests${module_name})
-add_executable(tests_exe ${src_files})
-
-set_target_properties(tests_exe PROPERTIES CUDA_SEPARABLE_COMPILATION ON)
 
+# Find required and optional dependencies
 find_package(aidge_backend_cpu REQUIRED)
 find_package(aidge_backend_cuda)
 
-if(NOT DEFINED CMAKE_CUDA_STANDARD)
-  set(CMAKE_CUDA_STANDARD 14)
-  set(CMAKE_CUDA_STANDARD_REQUIRED ON)
+# Find CUDA Toolkit if CUDA backend is available
+if(aidge_backend_cuda_FOUND)
+  # Specify CUDA Toolkit without COMPONENTS to avoid missing imported targets
+  enable_language(CUDA)
+  find_package(CUDA REQUIRED)
+  find_package(CUDAToolkit REQUIRED)
+
+  if(NOT DEFINED CMAKE_CUDA_STANDARD)
+    set(CMAKE_CUDA_STANDARD 14)
+    set(CMAKE_CUDA_STANDARD_REQUIRED ON)
+  endif()
 endif()
 
-target_link_libraries(tests_exe
+# Define the test executable
+add_executable(${tests_exe} ${src_files})
+
+# Include CUDA headers
+include_directories(${CUDA_INCLUDE_DIRS})
+# Link against the required aidge_backend_cpu library
+target_link_libraries(${tests_exe}
   PUBLIC ${module_name} _aidge_backend_cpu
   PRIVATE Catch2::Catch2WithMain
 )
 
+# Conditional CUDA linkage and definitions
 if(aidge_backend_cuda_FOUND)
+  # Enable CUDA language support and separable compilation for the target
   enable_language(CUDA)
-  find_package(CUDAToolkit REQUIRED)
-
-  target_link_libraries( _aidge_backend_cuda
-        INTERFACE
-        cudart  # Ensure CUDA dependencies are included
-        cublas  # Include other CUDA components if needed
-        cudnn
-  )
-
-  target_include_directories(_aidge_backend_cuda INTERFACE ${CUDAToolkit_INCLUDE_DIRS})
-
-  target_link_libraries(tests_exe
-        PUBLIC ${module_name} _aidge_backend_cuda
+  set_target_properties(${tests_exe} PROPERTIES CUDA_SEPARABLE_COMPILATION ON)
+  
+  target_include_directories(${tests_exe} PRIVATE ${CUDAToolkit_INCLUDE_DIRS})
+  # Link manually specified CUDA libraries if the targets are not available
+  target_link_libraries(${tests_exe}
+    PUBLIC 
+      _aidge_backend_cuda
+      CUDA::cudart
+      CUDA::cublas
+      cudnn
   )
 
-  # Define a preprocessor macro if aidge_backend_cuda is linked
-  target_compile_definitions(tests_exe PUBLIC USE_AIDGE_BACKEND_CUDA)
+  # Define a preprocessor macro to indicate CUDA support
+  target_compile_definitions(${tests_exe} PUBLIC USE_AIDGE_BACKEND_CUDA)
 endif()
 
-
+# Add Catch2 test discovery
 list(APPEND CMAKE_MODULE_PATH ${catch2_SOURCE_DIR}/extras)
 include(CTest)
 include(Catch)
-catch_discover_tests(tests_exe)
+catch_discover_tests(${tests_exe})
diff --git a/version.txt b/version.txt
index 5faa42c8a89ea0f5ab797259dce62bb190eb28c6..69367fd08f3ce302151ebc9779193d517dfa32de 100644
--- a/version.txt
+++ b/version.txt
@@ -1,2 +1,2 @@
-0.2.0
+0.3.0