diff --git a/src/test/com/cloudera/sqoop/TestAvroExport.java b/src/test/com/cloudera/sqoop/TestAvroExport.java
index 487c12b..ea456e2 100644
--- a/src/test/com/cloudera/sqoop/TestAvroExport.java
+++ b/src/test/com/cloudera/sqoop/TestAvroExport.java
@@ -448,6 +448,7 @@
     createTable(gen);
 
     thrown.expect(Exception.class);
+    thrown.reportMissingExceptionWithMessage("Expected Exception as Avro records are not supported");
     runExport(getArgv(true, 10, 10, newStrArray(argv, "-m", "" + 1)));
   }
 
@@ -477,6 +478,7 @@
     createTableWithInsert();
 
     thrown.expect(Exception.class);
+    thrown.reportMissingExceptionWithMessage("Expected Exception during Avro export with --update-mode");
     runExport(getArgv(true, 10, 10, newStrArray(argv, "-m", "" + 1)));
   }
 
@@ -504,6 +506,7 @@
     createTable(gen);
 
     thrown.expect(Exception.class);
+    thrown.reportMissingExceptionWithMessage("Expected Exception on missing Avro fields");
     runExport(getArgv(true, 10, 10, newStrArray(argv, "-m", "" + 1)));
   }
 
diff --git a/src/test/com/cloudera/sqoop/TestConnFactory.java b/src/test/com/cloudera/sqoop/TestConnFactory.java
index 62035cb..b362e49 100644
--- a/src/test/com/cloudera/sqoop/TestConnFactory.java
+++ b/src/test/com/cloudera/sqoop/TestConnFactory.java
@@ -69,6 +69,7 @@
     ConnFactory factory = new ConnFactory(conf);
 
     thrown.expect(IOException.class);
+    thrown.reportMissingExceptionWithMessage("Expected IOException because of missing ConnManager ");
     factory.getManager(
         new JobData(new SqoopOptions(), new ImportTool()));
   }
diff --git a/src/test/com/cloudera/sqoop/TestExportUpdate.java b/src/test/com/cloudera/sqoop/TestExportUpdate.java
index 81f3a68..683f591 100644
--- a/src/test/com/cloudera/sqoop/TestExportUpdate.java
+++ b/src/test/com/cloudera/sqoop/TestExportUpdate.java
@@ -702,6 +702,7 @@
     populateDatabase(1);
 
     thrown.expect(IOException.class);
+    thrown.reportMissingExceptionWithMessage("Expected IOException as --columns is not a superset of --update-key");
     runExport(getArgv(true, 2, 2, "-m", "1",
         "--update-key", "A", "--columns", "B"));
   }
diff --git a/src/test/com/cloudera/sqoop/TestParquetExport.java b/src/test/com/cloudera/sqoop/TestParquetExport.java
index 3c3db33..680fd73 100644
--- a/src/test/com/cloudera/sqoop/TestParquetExport.java
+++ b/src/test/com/cloudera/sqoop/TestParquetExport.java
@@ -396,6 +396,7 @@
     createTable(gen);
 
     thrown.expect(Exception.class);
+    thrown.reportMissingExceptionWithMessage("Expected Exception as Parquet records are not supported");
     runExport(getArgv(true, 10, 10, newStrArray(argv, "-m", "" + 1)));
   }
 
@@ -435,6 +436,7 @@
     createTableWithInsert();
 
     thrown.expect(Exception.class);
+    thrown.reportMissingExceptionWithMessage("Expected Exception during Parquet export with --update-mode");
     runExport(getArgv(true, 10, 10, newStrArray(argv, "-m", "" + 1)));
   }
 
@@ -449,6 +451,7 @@
     createTable(gen);
 
     thrown.expect(Exception.class);
+    thrown.reportMissingExceptionWithMessage("Expected Exception on missing Parquet fields");
     runExport(getArgv(true, 10, 10, newStrArray(argv, "-m", "" + 1)));
   }
 
diff --git a/src/test/com/cloudera/sqoop/TestSqoopOptions.java b/src/test/com/cloudera/sqoop/TestSqoopOptions.java
index 7d34d33..0b33b24 100644
--- a/src/test/com/cloudera/sqoop/TestSqoopOptions.java
+++ b/src/test/com/cloudera/sqoop/TestSqoopOptions.java
@@ -74,12 +74,14 @@
   @Test
   public void testEmptyString() throws Exception {
     thrown.expect(SqoopOptions.InvalidOptionsException.class);
+    thrown.reportMissingExceptionWithMessage("Expected InvalidOptionsException on empty string");
     SqoopOptions.toChar("");
   }
 
   @Test
   public void testNullString() throws Exception {
     thrown.expect(SqoopOptions.InvalidOptionsException.class);
+    thrown.reportMissingExceptionWithMessage("Expected InvalidOptionsException on null string");
     SqoopOptions.toChar(null);
   }
 
@@ -134,12 +136,14 @@
   @Test
   public void testUnknownEscape1() throws Exception {
     thrown.expect(SqoopOptions.InvalidOptionsException.class);
+    thrown.reportMissingExceptionWithMessage("Expected InvalidOptionsException on unknown escaping");
     SqoopOptions.toChar("\\Q");
   }
 
   @Test
   public void testUnknownEscape2() throws Exception {
     thrown.expect(SqoopOptions.InvalidOptionsException.class);
+    thrown.reportMissingExceptionWithMessage("Expected InvalidOptionsException on unknown escaping");
     SqoopOptions.toChar("\\nn");
   }
 
@@ -176,12 +180,14 @@
   @Test
   public void testErrOctalChar() throws Exception {
     thrown.expect(NumberFormatException.class);
+    thrown.reportMissingExceptionWithMessage("Expected NumberFormatException on erroneous octal char");
     SqoopOptions.toChar("\\095");
   }
 
   @Test
   public void testErrHexChar() throws Exception {
     thrown.expect(NumberFormatException.class);
+    thrown.reportMissingExceptionWithMessage("Expected NumberFormatException on erroneous hex char");
     SqoopOptions.toChar("\\0x9K5");
   }
 
@@ -242,6 +248,7 @@
     };
 
     thrown.expect(SqoopOptions.InvalidOptionsException.class);
+    thrown.reportMissingExceptionWithMessage("Expected InvalidOptionsException on invalid --num-mappers argument");
     parse(args);
   }
 
@@ -253,6 +260,7 @@
     };
 
     thrown.expect(SqoopOptions.InvalidOptionsException.class);
+    thrown.reportMissingExceptionWithMessage("Expected InvalidOptionsException on invalid -m argument");
     parse(args);
   }
 
@@ -696,6 +704,8 @@
     };
 
     thrown.expect(SqoopOptions.InvalidOptionsException.class);
+    thrown.reportMissingExceptionWithMessage("Expected InvalidOptionsException on incompatibility of " +
+        "--delete-target-dir and --append");
     validateImportOptions(extraArgs);
   }
 
@@ -708,6 +718,8 @@
     };
 
     thrown.expect(SqoopOptions.InvalidOptionsException.class);
+    thrown.reportMissingExceptionWithMessage("Expected InvalidOptionsException on incompatibility of " +
+        "--delete-target-dir and --incremental");
     validateImportOptions(extraArgs);
   }
 
@@ -732,6 +744,7 @@
         longArgument(BaseSqoopTool.TARGET_DIR_ARG), "./test"};
 
     thrown.expect(SqoopOptions.InvalidOptionsException.class);
+    thrown.reportMissingExceptionWithMessage("Expected InvalidOptionsException because of missing --hbase-table");
     validateImportOptions(extraArgs);
   }
 
@@ -764,6 +777,8 @@
     };
 
     thrown.expect(SqoopOptions.InvalidOptionsException.class);
+    thrown.reportMissingExceptionWithMessage("Expected Exception on incompatibility of " +
+        "--autoreset-to-one-mapper and --split-by");
     validateImportOptions(extraArgs);
   }
 
diff --git a/src/test/com/cloudera/sqoop/TestTargetDir.java b/src/test/com/cloudera/sqoop/TestTargetDir.java
index ded5392..d7ebd34 100644
--- a/src/test/com/cloudera/sqoop/TestTargetDir.java
+++ b/src/test/com/cloudera/sqoop/TestTargetDir.java
@@ -93,6 +93,7 @@
     String[] argv = (String[]) args.toArray(new String[0]);
 
     thrown.expect(IOException.class);
+    thrown.reportMissingExceptionWithMessage("Expected IOException on several output options");
     runImport(argv);
   }
 
@@ -148,6 +149,7 @@
     String[] argv = (String[]) args.toArray(new String[0]);
 
     thrown.expect(IOException.class);
+    thrown.reportMissingExceptionWithMessage("Expected IOException on --target-dir if target dir already exists");
     runImport(argv);
   }
 
diff --git a/src/test/org/apache/sqoop/TestExportUsingProcedure.java b/src/test/org/apache/sqoop/TestExportUsingProcedure.java
index b4b46f2..519305c 100644
--- a/src/test/org/apache/sqoop/TestExportUsingProcedure.java
+++ b/src/test/org/apache/sqoop/TestExportUsingProcedure.java
@@ -211,6 +211,7 @@
   @Test
   public void testMultiMapTextExportWithStaging() throws IOException, SQLException {
     thrown.expect(IOException.class);
+    thrown.reportMissingExceptionWithMessage("Expected IOException as staging tables are not compatible with --call");
     super.testMultiMapTextExportWithStaging();
   }
 
@@ -218,6 +219,7 @@
   @Test
   public void testMultiTransactionWithStaging() throws IOException, SQLException {
     thrown.expect(IOException.class);
+    thrown.reportMissingExceptionWithMessage("Expected IOException as staging tables are not compatible with --call");
     super.testMultiTransactionWithStaging();
   }
 
