diff --git a/tests/test_algorithms.py b/tests/test_algorithms.py
index 7545f2f79bdebf5b7257ca63fcae43aa0f88f43e..17324d833406c4fc9b1e88be12ad843361ef1257 100644
--- a/tests/test_algorithms.py
+++ b/tests/test_algorithms.py
@@ -3,14 +3,17 @@
 # @author: Manuel Guenther <Manuel.Guenther@idiap.ch>
 # @date: Thu May 24 10:41:42 CEST 2012
 
+from pathlib import Path
+
 import numpy as np
-import pkg_resources
 
 import bob.bio.base
 import bob.io.base
 
 from . import utils
 
+TEST_DATA_DIR = Path(__file__).parent / "data"
+
 
 def test_distance_algorithm():
     # test the two registered distance functions
@@ -37,9 +40,7 @@ def test_distance_algorithm():
 
     # compare model with probe
     enroll = utils.random_training_set(5, 5, 0.0, 255.0, seed=21)
-    probe = bob.io.base.load(
-        pkg_resources.resource_filename(__name__, "data/lda_projected.hdf5")
-    )
+    probe = bob.io.base.load(str(TEST_DATA_DIR / "lda_projected.hdf5"))
     models = cosine.create_templates([enroll], enroll=True)
     probes = cosine.create_templates([probe], enroll=False)
     score = cosine.compare(models, probes)[0, 0]
diff --git a/tests/test_commands.py b/tests/test_commands.py
index 79cb153f80eb8ffec333a55b0363f32b5e7d703b..10190778d171ac6eac6f61f3e05a0b5a31fcf07e 100644
--- a/tests/test_commands.py
+++ b/tests/test_commands.py
@@ -2,9 +2,10 @@
 
 import shutil
 
+from pathlib import Path
+
 import click
 import numpy
-import pkg_resources
 
 from click.testing import CliRunner
 
@@ -12,18 +13,20 @@ from bob.bio.base.score import scores
 from bob.bio.base.script import commands, compare_samples, sort, vuln_commands
 from bob.io.base.testing_utils import assert_click_runner_result
 
+DATA_DIR_PATH = Path(__file__).parent / "data"
+
 
 def test_metrics():
-    dev1 = pkg_resources.resource_filename(__name__, "data/dev-4col.txt")
+    dev1 = str(DATA_DIR_PATH / "dev-4col.txt")
     runner = CliRunner()
     result = runner.invoke(commands.metrics, [dev1])
     with runner.isolated_filesystem():
         with open("tmp", "w") as f:
             f.write(result.output)
         assert_click_runner_result(result)
-    dev2 = pkg_resources.resource_filename(__name__, "data/dev-5col.txt")
-    test1 = pkg_resources.resource_filename(__name__, "data/test-4col.txt")
-    test2 = pkg_resources.resource_filename(__name__, "data/test-5col.txt")
+    dev2 = str(DATA_DIR_PATH / "dev-5col.txt")
+    test1 = str(DATA_DIR_PATH / "test-4col.txt")
+    test2 = str(DATA_DIR_PATH / "test-5col.txt")
     with runner.isolated_filesystem():
         result = runner.invoke(
             commands.metrics, ["-e", dev1, test1, dev2, test2]
@@ -99,25 +102,21 @@ def test_metrics():
 def test_roc():
     """
 
-    dev1 = pkg_resources.resource_filename('bob.bio.base.test',
-                                           'data/dev-4col.txt')
+    dev1 = str(DATA_DIR_PATH / "dev-4col.txt")
     runner = CliRunner()
     with runner.isolated_filesystem():
-        result = runner.invoke(commands.roc, ['--output',
-                                              'test.pdf',dev1])
+        result = runner.invoke(commands.roc, ["--output",
+                                              "test.pdf",dev1])
         if result.output:
             click.echo(result.output)
         assert_click_runner_result(result)
-    dev2 = pkg_resources.resource_filename('bob.bio.base.test',
-                                           'data/dev-5col.txt')
-    test1 = pkg_resources.resource_filename('bob.bio.base.test',
-                                            'data/test-4col.txt')
-    test2 = pkg_resources.resource_filename('bob.bio.base.test',
-                                            'data/test-5col.txt')
+    dev2 = str(DATA_DIR_PATH / "dev-5col.txt")
+    test1 = str(DATA_DIR_PATH / "test-4col.txt")
+    test2 = str(DATA_DIR_PATH / "test-5col.txt")
     with runner.isolated_filesystem():
-        result = runner.invoke(commands.roc, ['--split', '--output',
-                                              'test.pdf', '-S', '-ll',
-                                              'lower-left', '-e',
+        result = runner.invoke(commands.roc, ["--split", "--output",
+                                              "test.pdf", "-S", "-ll",
+                                              "lower-left", "-e",
                                               dev1, test1, dev2, test2])
         if result.output:
             click.echo(result.output)
@@ -125,23 +124,21 @@ def test_roc():
 
 
     with runner.isolated_filesystem():
-        result = runner.invoke(commands.roc, ['--output',
-                                              'test.pdf',
-                                              '-e', '--legends', 'A,B',
+        result = runner.invoke(commands.roc, ["--output",
+                                              "test.pdf",
+                                              "-e", "--legends", "A,B",
                                               dev1, test1, dev2, test2])
         if result.output:
             click.echo(result.output)
         assert_click_runner_result(result)
 
-    dev_nonorm = pkg_resources.resource_filename('bob.bio.base.test',
-                                                 'data/scores-nonorm-dev')
-    dev_ztnorm = pkg_resources.resource_filename('bob.bio.base.test',
-                                                 'data/scores-ztnorm-dev')
+    dev_nonorm = str(DATA_DIR_PATH / "scores-nonorm-dev")
+    dev_ztnorm = str(DATA_DIR_PATH / "scores-ztnorm-dev")
     with runner.isolated_filesystem():
         result = runner.invoke(commands.roc, [
-            '--min-far-value', '1e-6',
-            '--lines-at', '1e-5',
-            '-v', '--legends', 'A', '-e',
+            "--min-far-value", "1e-6",
+            "--lines-at", "1e-5",
+            "-v", "--legends", "A", "-e",
             dev_nonorm, dev_ztnorm
         ])
         if result.output:
@@ -152,16 +149,16 @@ def test_roc():
 
 
 def test_det():
-    dev1 = pkg_resources.resource_filename(__name__, "data/dev-4col.txt")
+    dev1 = str(DATA_DIR_PATH / "dev-4col.txt")
     runner = CliRunner()
     with runner.isolated_filesystem():
         result = runner.invoke(commands.det, [dev1, "-S"])
         if result.output:
             click.echo(result.output)
         assert_click_runner_result(result)
-    dev2 = pkg_resources.resource_filename(__name__, "data/dev-5col.txt")
-    test1 = pkg_resources.resource_filename(__name__, "data/test-4col.txt")
-    test2 = pkg_resources.resource_filename(__name__, "data/test-5col.txt")
+    dev2 = str(DATA_DIR_PATH / "dev-5col.txt")
+    test1 = str(DATA_DIR_PATH / "test-4col.txt")
+    test2 = str(DATA_DIR_PATH / "test-5col.txt")
     with runner.isolated_filesystem():
         result = runner.invoke(
             commands.det,
@@ -190,12 +187,8 @@ def test_det():
             click.echo(result.output)
         assert_click_runner_result(result)
 
-    dev_nonorm = pkg_resources.resource_filename(
-        __name__, "data/scores-nonorm-dev"
-    )
-    dev_ztnorm = pkg_resources.resource_filename(
-        __name__, "data/scores-ztnorm-dev"
-    )
+    dev_nonorm = str(DATA_DIR_PATH / "scores-nonorm-dev")
+    dev_ztnorm = str(DATA_DIR_PATH / "scores-ztnorm-dev")
     with runner.isolated_filesystem():
         result = runner.invoke(
             commands.det,
@@ -218,16 +211,16 @@ def test_det():
 
 
 def test_epc():
-    dev1 = pkg_resources.resource_filename(__name__, "data/dev-4col.txt")
-    test1 = pkg_resources.resource_filename(__name__, "data/test-4col.txt")
+    dev1 = str(DATA_DIR_PATH / "dev-4col.txt")
+    test1 = str(DATA_DIR_PATH / "test-4col.txt")
     runner = CliRunner()
     with runner.isolated_filesystem():
         result = runner.invoke(commands.epc, [dev1, test1])
         if result.output:
             click.echo(result.output)
         assert_click_runner_result(result)
-    dev2 = pkg_resources.resource_filename(__name__, "data/dev-4col.tar.gz")
-    test2 = pkg_resources.resource_filename(__name__, "data/test-5col.txt")
+    dev2 = str(DATA_DIR_PATH / "dev-4col.tar.gz")
+    test2 = str(DATA_DIR_PATH / "test-5col.txt")
     with runner.isolated_filesystem():
         result = runner.invoke(
             commands.epc,
@@ -247,12 +240,8 @@ def test_epc():
             click.echo(result.output)
         assert_click_runner_result(result)
 
-    dev_nonorm = pkg_resources.resource_filename(
-        __name__, "data/scores-nonorm-dev"
-    )
-    dev_ztnorm = pkg_resources.resource_filename(
-        __name__, "data/scores-ztnorm-dev"
-    )
+    dev_nonorm = str(DATA_DIR_PATH / "scores-nonorm-dev")
+    dev_ztnorm = str(DATA_DIR_PATH / "scores-ztnorm-dev")
 
     with runner.isolated_filesystem():
         result = runner.invoke(
@@ -264,10 +253,10 @@ def test_epc():
 
 
 def test_hist():
-    dev1 = pkg_resources.resource_filename(__name__, "data/dev-4col.txt")
-    dev2 = pkg_resources.resource_filename(__name__, "data/dev-5col.txt")
-    test1 = pkg_resources.resource_filename(__name__, "data/test-4col.txt")
-    test2 = pkg_resources.resource_filename(__name__, "data/test-5col.txt")
+    dev1 = str(DATA_DIR_PATH / "dev-4col.txt")
+    dev2 = str(DATA_DIR_PATH / "dev-5col.txt")
+    test1 = str(DATA_DIR_PATH / "test-4col.txt")
+    test2 = str(DATA_DIR_PATH / "test-5col.txt")
     runner = CliRunner()
     with runner.isolated_filesystem():
         result = runner.invoke(commands.hist, [dev1])
@@ -318,16 +307,14 @@ def test_hist():
 
 
 def test_cmc():
-    dev1 = pkg_resources.resource_filename(__name__, "data/scores-cmc-5col.txt")
+    dev1 = str(DATA_DIR_PATH / "scores-cmc-5col.txt")
     runner = CliRunner()
     with runner.isolated_filesystem():
         result = runner.invoke(commands.cmc, [dev1])
         if result.output:
             click.echo(result.output)
         assert_click_runner_result(result)
-    test1 = pkg_resources.resource_filename(
-        __name__, "data/scores-cmc-4col.txt"
-    )
+    test1 = str(DATA_DIR_PATH / "scores-cmc-4col.txt")
     with runner.isolated_filesystem():
         result = runner.invoke(
             commands.cmc,
@@ -350,12 +337,8 @@ def test_cmc():
             click.echo(result.output)
         assert_click_runner_result(result)
 
-    dev_nonorm = pkg_resources.resource_filename(
-        __name__, "data/scores-nonorm-dev"
-    )
-    dev_ztnorm = pkg_resources.resource_filename(
-        __name__, "data/scores-ztnorm-dev"
-    )
+    dev_nonorm = str(DATA_DIR_PATH / "scores-nonorm-dev")
+    dev_ztnorm = str(DATA_DIR_PATH / "scores-ztnorm-dev")
 
     with runner.isolated_filesystem():
         result = runner.invoke(
@@ -367,18 +350,14 @@ def test_cmc():
 
 
 def test_dir():
-    dev1 = pkg_resources.resource_filename(
-        __name__, "data/scores-nonorm-openset-dev"
-    )
+    dev1 = str(DATA_DIR_PATH / "scores-nonorm-openset-dev")
     runner = CliRunner()
     with runner.isolated_filesystem():
         result = runner.invoke(commands.dir, [dev1, "--rank", 2])
         if result.output:
             click.echo(result.output)
         assert_click_runner_result(result)
-    test1 = pkg_resources.resource_filename(
-        __name__, "data/scores-nonorm-openset-dev"
-    )
+    test1 = str(DATA_DIR_PATH / "scores-nonorm-openset-dev")
     with runner.isolated_filesystem():
         result = runner.invoke(
             commands.dir,
@@ -413,7 +392,7 @@ def test_sort():
         lines = [lines[i] for i in sort_idx]
         return lines
 
-    dev1 = pkg_resources.resource_filename(__name__, "data/scores-nonorm-dev")
+    dev1 = str(DATA_DIR_PATH / "scores-nonorm-dev")
     runner = CliRunner()
     with runner.isolated_filesystem():
         # create a temporary sort file and sort it and check if it is sorted!
@@ -432,22 +411,16 @@ def test_sort():
 
 
 def test_metrics_vuln():
-    dev1 = pkg_resources.resource_filename(__name__, "data/vuln/scores-dev.csv")
+    dev1 = str(DATA_DIR_PATH / "vuln/scores-dev.csv")
     runner = CliRunner()
     result = runner.invoke(vuln_commands.metrics, [dev1])
     with runner.isolated_filesystem():
         with open("tmp", "w") as f:
             f.write(result.output)
         assert_click_runner_result(result)
-    dev2 = pkg_resources.resource_filename(
-        __name__, "data/vuln/scores-dev-med.csv"
-    )
-    test1 = pkg_resources.resource_filename(
-        __name__, "data/vuln/scores-eval.csv"
-    )
-    test2 = pkg_resources.resource_filename(
-        __name__, "data/vuln/scores-eval-med.csv"
-    )
+    dev2 = str(DATA_DIR_PATH / "vuln/scores-dev-med.csv")
+    test1 = str(DATA_DIR_PATH / "vuln/scores-eval.csv")
+    test2 = str(DATA_DIR_PATH / "vuln/scores-eval-med.csv")
     with runner.isolated_filesystem():
         result = runner.invoke(
             vuln_commands.metrics, ["-e", dev1, test1, dev2, test2]
@@ -470,12 +443,8 @@ def test_metrics_vuln():
 
 
 def test_det_vuln():
-    dev_file = pkg_resources.resource_filename(
-        __name__, "data/vuln/scores-dev.csv"
-    )
-    eval_file = pkg_resources.resource_filename(
-        __name__, "data/vuln/scores-eval.csv"
-    )
+    dev_file = str(DATA_DIR_PATH / "vuln/scores-dev.csv")
+    eval_file = str(DATA_DIR_PATH / "vuln/scores-eval.csv")
     runner = CliRunner()
     with runner.isolated_filesystem():
         result = runner.invoke(
@@ -486,12 +455,8 @@ def test_det_vuln():
 
 
 def test_fmr_iapmr_vuln():
-    dev_file = pkg_resources.resource_filename(
-        __name__, "data/vuln/scores-dev.csv"
-    )
-    eval_file = pkg_resources.resource_filename(
-        __name__, "data/vuln/scores-eval.csv"
-    )
+    dev_file = str(DATA_DIR_PATH / "vuln/scores-dev.csv")
+    eval_file = str(DATA_DIR_PATH / "vuln/scores-eval.csv")
     runner = CliRunner()
     with runner.isolated_filesystem():
         result = runner.invoke(
@@ -521,12 +486,8 @@ def test_fmr_iapmr_vuln():
 
 
 def test_hist_vuln():
-    dev_file = pkg_resources.resource_filename(
-        __name__, "data/vuln/scores-dev.csv"
-    )
-    eval_file = pkg_resources.resource_filename(
-        __name__, "data/vuln/scores-eval.csv"
-    )
+    dev_file = str(DATA_DIR_PATH / "vuln/scores-dev.csv")
+    eval_file = str(DATA_DIR_PATH / "vuln/scores-eval.csv")
     runner = CliRunner()
     with runner.isolated_filesystem():
         result = runner.invoke(
@@ -565,12 +526,8 @@ def test_hist_vuln():
 
 
 def test_epc_vuln():
-    dev_file = pkg_resources.resource_filename(
-        __name__, "data/vuln/scores-dev.csv"
-    )
-    eval_file = pkg_resources.resource_filename(
-        __name__, "data/vuln/scores-eval.csv"
-    )
+    dev_file = str(DATA_DIR_PATH / "vuln/scores-dev.csv")
+    eval_file = str(DATA_DIR_PATH / "vuln/scores-eval.csv")
     runner = CliRunner()
     with runner.isolated_filesystem():
         result = runner.invoke(
@@ -598,12 +555,8 @@ def test_epc_vuln():
 
 
 def test_epsc_vuln():
-    dev_file = pkg_resources.resource_filename(
-        __name__, "data/vuln/scores-dev.csv"
-    )
-    eval_file = pkg_resources.resource_filename(
-        __name__, "data/vuln/scores-eval.csv"
-    )
+    dev_file = str(DATA_DIR_PATH / "vuln/scores-dev.csv")
+    eval_file = str(DATA_DIR_PATH / "vuln/scores-eval.csv")
     runner = CliRunner()
     with runner.isolated_filesystem():
         result = runner.invoke(
@@ -633,12 +586,8 @@ def test_epsc_vuln():
 
 
 def test_epsc_3D_vuln():
-    dev_file = pkg_resources.resource_filename(
-        __name__, "data/vuln/scores-dev.csv"
-    )
-    eval_file = pkg_resources.resource_filename(
-        __name__, "data/vuln/scores-eval.csv"
-    )
+    dev_file = str(DATA_DIR_PATH / "vuln/scores-dev.csv")
+    eval_file = str(DATA_DIR_PATH / "vuln/scores-eval.csv")
     runner = CliRunner()
     with runner.isolated_filesystem():
         result = runner.invoke(
@@ -669,12 +618,8 @@ def test_epsc_3D_vuln():
 
 
 def test_evaluate_vuln():
-    dev_file = pkg_resources.resource_filename(
-        __name__, "data/vuln/scores-dev.csv"
-    )
-    eval_file = pkg_resources.resource_filename(
-        __name__, "data/vuln/scores-eval.csv"
-    )
+    dev_file = str(DATA_DIR_PATH / "vuln/scores-dev.csv")
+    eval_file = str(DATA_DIR_PATH / "vuln/scores-eval.csv")
     runner = CliRunner()
     with runner.isolated_filesystem():
         result = runner.invoke(
@@ -691,12 +636,8 @@ def test_evaluate_vuln():
 
 
 def test_compare_samples():
-    sample_1_path = pkg_resources.resource_filename(
-        __name__, "data/dummy_samples_1.hdf5"
-    )
-    sample_2_path = pkg_resources.resource_filename(
-        __name__, "data/dummy_samples_2.hdf5"
-    )
+    sample_1_path = str(DATA_DIR_PATH / "dummy_samples_1.hdf5")
+    sample_2_path = str(DATA_DIR_PATH / "dummy_samples_2.hdf5")
     runner = CliRunner()
     from bob.bio.base.config.dummy.pipeline import pipeline
 
diff --git a/tests/test_io.py b/tests/test_io.py
index 36db189867bf1846e395a80359d3ffd40771e458..81b25a0b63c73440179b4fe0bee993fb98f7f777 100644
--- a/tests/test_io.py
+++ b/tests/test_io.py
@@ -9,11 +9,14 @@
 
 import tempfile
 
+from pathlib import Path
+
 import numpy
-import pkg_resources
 
 from bob.bio.base import score
 
+DATA_DIR_PATH = Path(__file__).parent / "data"
+
 
 def test_load_scores():
     # This function tests the IO functionality of loading score files in
@@ -23,18 +26,14 @@ def test_load_scores():
     cols = {"4col": 4, "5col": 5}
 
     for variant in cols:
-        normal_score_file = pkg_resources.resource_filename(
-            __name__, "data/dev-%s.txt" % variant
-        )
+        normal_score_file = str(DATA_DIR_PATH / f"dev-{variant}.txt")
         normal_scores = list(load_functions[variant](normal_score_file))
 
         assert len(normal_scores) == 910
         assert all(len(s) == cols[variant] for s in normal_scores)
 
         # read the compressed score file
-        compressed_score_file = pkg_resources.resource_filename(
-            __name__, "data/dev-%s.tar.gz" % variant
-        )
+        compressed_score_file = str(DATA_DIR_PATH / f"dev-{variant}.tar.gz")
         compressed_scores = list(load_functions[variant](compressed_score_file))
 
         assert len(compressed_scores) == len(normal_scores)
@@ -66,9 +65,7 @@ def test_load_scores():
 
 def test_split_vuln_scores():
     """Tests that vulnerability score files are loaded correctly"""
-    score_file = pkg_resources.resource_filename(
-        __name__, "data/vuln/scores-dev.csv"
-    )
+    score_file = str(DATA_DIR_PATH / "vuln/scores-dev.csv")
     split_scores = score.split_csv_vuln(score_file)
     assert all(
         key in split_scores for key in ("licit_neg", "licit_pos", "spoof")
@@ -91,18 +88,14 @@ def test_split_scores():
 
     for variant in cols:
         # read score file in normal way
-        normal_score_file = pkg_resources.resource_filename(
-            __name__, "data/dev-%s.txt" % variant
-        )
+        normal_score_file = str(DATA_DIR_PATH / f"dev-{variant}.txt")
         negatives, positives = split_functions[variant](normal_score_file)
 
         assert len(negatives) == 520, len(negatives)
         assert len(positives) == 390, len(positives)
 
         # read the compressed score file
-        compressed_score_file = pkg_resources.resource_filename(
-            __name__, "data/dev-%s.tar.gz" % variant
-        )
+        compressed_score_file = str(DATA_DIR_PATH / f"dev-{variant}.tar.gz")
         negatives, positives = split_functions[variant](compressed_score_file)
 
         assert len(negatives) == 520, len(negatives)
@@ -129,21 +122,15 @@ def test_load_score():
     cols = {"4col": 4, "5col": 5}
 
     for variant in cols:
-        compressed_score_file = pkg_resources.resource_filename(
-            __name__, "data/dev-%s.tar.gz" % variant
-        )
-        normal_score_file = pkg_resources.resource_filename(
-            __name__, "data/dev-%s.txt" % variant
-        )
+        compressed_score_file = str(DATA_DIR_PATH / f"dev-{variant}.tar.gz")
+        normal_score_file = str(DATA_DIR_PATH / f"dev-{variant}.txt")
         normal_scores = score.load_score(normal_score_file, cols[variant])
 
         assert len(normal_scores) == 910
         assert len(normal_scores.dtype) == cols[variant]
 
         # read the compressed score file
-        compressed_score_file = pkg_resources.resource_filename(
-            __name__, "data/dev-%s.tar.gz" % variant
-        )
+        compressed_score_file = str(DATA_DIR_PATH / f"dev-{variant}.tar.gz")
         compressed_scores = score.load_score(
             compressed_score_file, cols[variant]
         )
@@ -167,9 +154,7 @@ def test_dump_score():
 
     for variant in cols:
         # read score file
-        normal_score_file = pkg_resources.resource_filename(
-            __name__, "data/dev-%s.txt" % variant
-        )
+        normal_score_file = str(DATA_DIR_PATH / f"dev-{variant}.txt")
         normal_scores = score.load_score(normal_score_file, cols[variant])
 
         with tempfile.TemporaryFile() as f: