Hoist this logic out of the loop, since it's used after the end of the loop
diff --git a/tests/conftest.py b/tests/conftest.py
index 778ee85..c4d6b9c 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -17,11 +17,11 @@
 
     if "backend" in metafunc.fixturenames:
         filtered_backends = []
+        required = metafunc.function.requires_backend_interface
+        required_interfaces = tuple(
+            mark.kwargs["interface"] for mark in required
+        )
         for backend in selected_backends:
-            required = metafunc.function.requires_backend_interface
-            required_interfaces = tuple(
-                mark.kwargs["interface"] for mark in required
-            )
             if isinstance(backend, required_interfaces):
                 filtered_backends.append(backend)