diff --git a/geant_service_orchestrator/__init__.py b/geant_service_orchestrator/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/requirements.txt b/requirements.txt
index 0ec76021395f5f7b8b484217be1246649d93d39f..5b0787674542104bfce569a6a6c79d9ee40b2351 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1 +1,3 @@
 orchestrator-core
+
+pytest
diff --git a/test/test_placeholder.py b/test/test_placeholder.py
new file mode 100644
index 0000000000000000000000000000000000000000..fb0fd661278e84761d1f53385074659188698e0b
--- /dev/null
+++ b/test/test_placeholder.py
@@ -0,0 +1,4 @@
+# just a placeholder to be able to run tests during ci
+
+def test_placeholder():
+  pass
diff --git a/tox.ini b/tox.ini
new file mode 100644
index 0000000000000000000000000000000000000000..733d4a3712c670ce5d2a16107a74386366c606bb
--- /dev/null
+++ b/tox.ini
@@ -0,0 +1,18 @@
+[flake8]
+exclude = venv,.tox, migrations
+
+[testenv]
+deps =
+    coverage
+    flake8
+    -r requirements.txt
+
+commands =
+    coverage erase
+    coverage run --source geant_service_orchestrator -m pytest {posargs}
+    coverage xml
+    coverage html
+    # coverage report --fail-under 80
+    coverage report
+    flake8
+