diff --git a/pre_commit_hooks/detect_aws_credentials.py b/pre_commit_hooks/detect_aws_credentials.py
index e63e72a..f727078 100644
--- a/pre_commit_hooks/detect_aws_credentials.py
+++ b/pre_commit_hooks/detect_aws_credentials.py
@@ -8,8 +8,8 @@
 
 
 def get_your_keys(credentials_file):
-    """ reads the secret keys in your credentials file in order to be able to look
-    for them in the submitted code.
+    """reads the secret keys in your credentials file in order to be able to
+    look for them in the submitted code.
     """
     aws_credentials_file_path = os.path.expanduser(credentials_file)
     if not os.path.exists(aws_credentials_file_path):
@@ -41,14 +41,22 @@
     parser = argparse.ArgumentParser()
     parser.add_argument('filenames', nargs='*', help='Filenames to run')
     parser.add_argument(
-        "--credentials-file",
+        '--credentials-file',
         default='~/.aws/credentials',
-        help="location of aws credentials file from which to get the secret "
-             "keys we're looking for",
+        help=(
+            'location of aws credentials file from which to get the secret '
+            "keys we're looking for"
+        ),
     )
     args = parser.parse_args(argv)
     keys = get_your_keys(args.credentials_file)
     if not keys:
+        print(
+            'No aws keys were configured at {0}\n'
+            'Configure them with --credentials-file'.format(
+                args.credentials_file,
+            ),
+        )
         return 2
 
     bad_filenames = check_file_for_aws_keys(args.filenames, keys)
diff --git a/tests/detect_aws_credentials_test.py b/tests/detect_aws_credentials_test.py
index 495c574..2fbb2da 100644
--- a/tests/detect_aws_credentials_test.py
+++ b/tests/detect_aws_credentials_test.py
@@ -12,10 +12,6 @@
     ('ok_json.json', 0),
 )
 
-NO_CREDENTIALS_TEST = (
-    ('with_secrets.txt', 2),
-)
-
 
 @pytest.mark.parametrize(('filename', 'expected_retval'), TESTS)
 def test_detect_aws_credentials(filename, expected_retval):
@@ -26,10 +22,16 @@
     assert ret == expected_retval
 
 
-@pytest.mark.parametrize(('filename', 'expected_retval'), NO_CREDENTIALS_TEST)
-def test_non_existent_credentials(filename, expected_retval):
+def test_non_existent_credentials(capsys):
     # with a non-existent credentials file
-    ret = main(
-        [get_resource_path(filename), "--credentials-file=testing/resources/credentailsfilethatdoesntexist"]
+    ret = main((
+        get_resource_path('with_secrets.txt'),
+        "--credentials-file=testing/resources/credentailsfilethatdoesntexist"
+    ))
+    assert ret == 2
+    out, _ = capsys.readouterr()
+    assert out == (
+        'No aws keys were configured at '
+        'testing/resources/credentailsfilethatdoesntexist\n'
+        'Configure them with --credentials-file\n'
     )
-    assert ret == expected_retval
