diff --git a/requirements.txt b/requirements.txt
index af546b5715aff459e499561326471c5df26c8eaa..9732a525804ca350a44d28a76c17d3a0fd8ce986 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -9,3 +9,4 @@ pytest
 pytest-django
 pytest-mock
 faker
+coverage
diff --git a/tox.ini b/tox.ini
index 91d0161e6590165ecf51bec47ab84ff68718aacd..9380288f26e73d609400dbc834530157acacb636 100644
--- a/tox.ini
+++ b/tox.ini
@@ -5,6 +5,13 @@ envlist = py311
 deps =
     mypy
     ruff
+    -r requirements.txt
 commands =
     ruff check .
     mypy .
+    coverage erase
+    coverage run --source sage_validation -m pytest
+    coverage report --fail-under=90
+    coverage xml
+    coverage html
+