diff --git a/test/conftest.py b/test/conftest.py
index 1a9764c389936b47d619020c8547f83933ac74da..6805738f2c643787761568ffbbb8be763c877550 100644
--- a/test/conftest.py
+++ b/test/conftest.py
@@ -111,13 +111,17 @@ def data_config_filename(tmp_dir_name):
     return filename
 
 
-@pytest.fixture
-def data_config():
+def _tmp_data_config():
     with tempfile.TemporaryDirectory() as tmpdir:
         with open(data_config_filename(tmpdir)) as f:
             return config.load(f)
 
 
+@pytest.fixture
+def data_config():
+    return _tmp_data_config()
+
+
 @pytest.fixture
 def cached_test_data():
     filename = os.path.join(
@@ -145,3 +149,11 @@ def client(app_config):
     os.environ["SETTINGS_FILENAME"] = app_config
     with inventory_provider.create_app().test_client() as c:
         yield c
+
+
+def pytest_generate_tests(metafunc):
+    params = _tmp_data_config()
+    metafunc.parametrize(
+        "router",
+        list([r['hostname'] for r in params['routers']])
+    )
diff --git a/test/test_netconf_data.py b/test/test_netconf_data.py
index 5e628ce1cd537f0f8ad53e20beef357646a3d75f..46185b4dc9d8547f02732c0e143697bfdb4eb771 100644
--- a/test/test_netconf_data.py
+++ b/test/test_netconf_data.py
@@ -23,12 +23,9 @@ class MockedJunosDevice(object):
         pass
 
 
-def test_query_doc_and_validate(mocker, data_config):
+def test_query_doc_and_validate(mocker, router, data_config):
     mocker.patch(
         'inventory_provider.netconf.Device',
         MockedJunosDevice)
-
-    for r in data_config['routers']:
-        doc = netconf.load_config(r['hostname'], data_config['ssh'])
-
+    netconf.load_config(router, data_config['ssh'])