diff --git a/tests/conftest.py b/tests/conftest.py
index 1cb2b30..9dc37d3 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -17,7 +17,7 @@
 
 from cryptography.hazmat.backends import _available_backends
 
-from .utils import check_backend_support, select_backends
+from .utils import check_backend_support, select_backends, skip_if_empty
 
 
 def pytest_generate_tests(metafunc):
@@ -39,16 +39,11 @@
                 if isinstance(backend, required_interfaces):
                     filtered_backends.append(backend)
 
-        if not filtered_backends:
-            # If you pass an empty list to parametrize Bad Things(tm) happen
-            # as of pytest 2.6.4 when the test also has a parametrize decorator
-            pytest.skip(
-                "No backends provided supply the interface: {0}".format(
-                    ", ".join(iface.__name__ for iface in required_interfaces)
-                )
-            )
-        else:
-            metafunc.parametrize("backend", filtered_backends)
+        # If you pass an empty list to parametrize Bad Things(tm) happen
+        # as of pytest 2.6.4 when the test also has a parametrize decorator
+        skip_if_empty(filtered_backends, required_interfaces)
+
+        metafunc.parametrize("backend", filtered_backends)
 
 
 @pytest.mark.trylast
diff --git a/tests/test_utils.py b/tests/test_utils.py
index 6c8d088..8bb8422 100644
--- a/tests/test_utils.py
+++ b/tests/test_utils.py
@@ -32,7 +32,7 @@
     load_fips_ecdsa_key_pair_vectors, load_fips_ecdsa_signing_vectors,
     load_hash_vectors, load_kasvs_dh_vectors, load_nist_vectors,
     load_pkcs1_vectors, load_rsa_nist_vectors, load_vectors_from_file,
-    raises_unsupported_algorithm, select_backends
+    raises_unsupported_algorithm, select_backends, skip_if_empty
 )
 
 
@@ -82,6 +82,13 @@
     assert selected_backends == [b1, b2]
 
 
+def test_skip_if_empty():
+    with pytest.raises(pytest.skip.Exception):
+        skip_if_empty([], [FakeInterface])
+
+    skip_if_empty(["notempty"], [FakeInterface])
+
+
 def test_check_backend_support_skip():
     supported = pretend.stub(
         kwargs={"only_if": lambda backend: False, "skip_message": "Nope"}
diff --git a/tests/utils.py b/tests/utils.py
index 7b462c2..acc6c14 100644
--- a/tests/utils.py
+++ b/tests/utils.py
@@ -53,6 +53,15 @@
         )
 
 
+def skip_if_empty(backend_list, required_interfaces):
+    if not backend_list:
+        pytest.skip(
+            "No backends provided supply the interface: {0}".format(
+                ", ".join(iface.__name__ for iface in required_interfaces)
+            )
+        )
+
+
 def check_backend_support(item):
     supported = item.keywords.get("supported")
     if supported and "backend" in item.funcargs:
