diff --git a/tests/primitives/test_cryptrec.py b/tests/primitives/test_cryptrec.py
index 59d8b24..4d16ce0 100644
--- a/tests/primitives/test_cryptrec.py
+++ b/tests/primitives/test_cryptrec.py
@@ -30,8 +30,9 @@
     test_NTT = generate_encrypt_test(
         load_cryptrec_vectors_from_file,
         os.path.join("Camellia", "NTT"),
-        ["camellia-128-ecb", "camellia-192-ecb", "camellia-256"],
+        ["camellia-128-ecb.txt", "camellia-192-ecb.txt", "camellia-256-ecb.txt"],
         lambda key: ciphers.Camellia(binascii.unhexlify((key))),
         lambda key: modes.EBC(),
-        only_if=lambda api: api.supports_cipher("camellia-128-ecb")
+        only_if=lambda api: api.supports_cipher("camellia-128-ecb"),
+        skip_message="Does not support Camellia ECB",
     )
diff --git a/tests/primitives/test_openssl_vectors.py b/tests/primitives/test_openssl_vectors.py
index f9c4e1f..6e32eca 100644
--- a/tests/primitives/test_openssl_vectors.py
+++ b/tests/primitives/test_openssl_vectors.py
@@ -18,10 +18,6 @@
 from __future__ import absolute_import, division, print_function
 
 import binascii
-import itertools
-import os
-
-import pytest
 
 from cryptography.primitives.block import ciphers, modes
 
@@ -36,7 +32,8 @@
         ["camellia-cbc.txt"],
         lambda key, iv: ciphers.Camellia(binascii.unhexlify(key)),
         lambda key, iv: modes.CBC(binascii.unhexlify(iv)),
-        only_if=lambda api: api.supports_cipher("camellia-128-cbc")
+        only_if=lambda api: api.supports_cipher("camellia-128-cbc"),
+        skip_message="Does not support Camellia CBC",
     )
 
 
@@ -47,7 +44,8 @@
         ["camellia-ofb.txt"],
         lambda key, iv: ciphers.Camellia(binascii.unhexlify(key)),
         lambda key, iv: modes.OFB(binascii.unhexlify(iv)),
-        only_if=lambda api: api.supports_cipher("camellia-128-ofb")
+        only_if=lambda api: api.supports_cipher("camellia-128-ofb"),
+        skip_message="Does not support Camellia OFB",
     )
 
 
@@ -58,5 +56,6 @@
         ["camellia-cfb.txt"],
         lambda key, iv: ciphers.Camellia(binascii.unhexlify(key)),
         lambda key, iv: modes.CFB(binascii.unhexlify(iv)),
-        only_if=lambda api: api.supports_cipher("camellia-128-cfb")
+        only_if=lambda api: api.supports_cipher("camellia-128-cfb"),
+        skip_message="Does not support Camellia CFB",
     )
diff --git a/tests/primitives/utils.py b/tests/primitives/utils.py
index addd712..e4cb8da 100644
--- a/tests/primitives/utils.py
+++ b/tests/primitives/utils.py
@@ -8,19 +8,28 @@
 
 
 def generate_encrypt_test(param_loader, path, file_names, cipher_factory,
-                          mode_factory, only_if=lambda api: True):
+                          mode_factory, only_if=lambda api: True,
+                          skip_message=None):
     def test_encryption(self):
         for api in _ALL_APIS:
-            if not only_if(api):
-                yield encrypt_skipped
-            else:
-                for file_name in file_names:
-                    for params in param_loader(os.path.join(path, file_name)):
-                        yield encrypt_test, api, cipher_factory, mode_factory, params
+            for file_name in file_names:
+                for params in param_loader(os.path.join(path, file_name)):
+                    yield (
+                        encrypt_test,
+                        api,
+                        cipher_factory,
+                        mode_factory,
+                        params,
+                        only_if,
+                        skip_message
+                    )
     return test_encryption
 
 
-def encrypt_test(api, cipher_factory, mode_factory, params):
+def encrypt_test(api, cipher_factory, mode_factory, params, only_if,
+                 skip_message):
+    if not only_if(api):
+        pytest.skip(skip_message)
     plaintext = params.pop("plaintext")
     ciphertext = params.pop("ciphertext")
     cipher = BlockCipher(
@@ -31,7 +40,3 @@
     actual_ciphertext = cipher.encrypt(binascii.unhexlify(plaintext))
     actual_ciphertext += cipher.finalize()
     assert binascii.hexlify(actual_ciphertext) == ciphertext
-
-
-def encrypt_skipped():
-    pytest.skip("because reasons")
