diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 892fcdebe69fe70023b1501d7b2032eade92cdb6..7e30e3bb8edff19f7210c843860dae5a2c276569 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -58,6 +58,12 @@ test:
     - nix --extra-experimental-features "nix-command flakes" build
     - nix --extra-experimental-features "nix-command flakes" flake check -L
 
+test-lib:
+  stage: test
+  script:
+    - nix --extra-experimental-features "nix-command flakes" build
+    - nix --extra-experimental-features "nix-command flakes" develop --command make test-lib
+
 ## Manual generation of the documentation
 
 documentation:
diff --git a/Makefile b/Makefile
index 3c50ad605d027087ac9e5c8661bb07a07bcdcf80..b5e8c7b5dfc54905a67d8f834a65f1de12162cbf 100644
--- a/Makefile
+++ b/Makefile
@@ -16,6 +16,9 @@ test:
 test-ci:
 	dune build -j2 @tests/ci
 
+test-lib:
+	dune runtest -j2 lib
+
 promote:
 	dune promote --root=.
 
diff --git a/flake.nix b/flake.nix
index 2d40836c459f2a9840deb95b55ddc83c9c4c0204..6c2d79dfdeff783c3c83db638f4cf512e1fe4873 100644
--- a/flake.nix
+++ b/flake.nix
@@ -94,7 +94,10 @@
               dontBuild = true;
               dontInstall = true;
               doCheck = true;
-              checkPhase = "make test-ci";
+              checkPhase = ''
+                make test-ci
+                make test-lib
+              '';
               buildInputs = oldAttrs.buildInputs ++
                 [ pkgs.python3Packages.onnx ];
             });