diff --git a/asterix-installer/src/test/java/edu/uci/ics/asterix/installer/transaction/DmlRecoveryIT.java b/asterix-installer/src/test/java/edu/uci/ics/asterix/installer/transaction/DmlRecoveryIT.java
index 9caf48c..ee41ddb 100644
--- a/asterix-installer/src/test/java/edu/uci/ics/asterix/installer/transaction/DmlRecoveryIT.java
+++ b/asterix-installer/src/test/java/edu/uci/ics/asterix/installer/transaction/DmlRecoveryIT.java
@@ -28,7 +28,6 @@
 public class DmlRecoveryIT {
 
     // variable to indicate whether this test will be executed
-    private static final boolean IS_DML_RECOVERY_TEST_ON = false;
 
     private static final Logger LOGGER = Logger.getLogger(RecoveryIT.class.getName());
     private static final String PATH_ACTUAL = "rttest/";
@@ -96,12 +95,10 @@
     public static Collection<Object[]> tests() throws Exception {
 
         Collection<Object[]> testArgs = new ArrayList<Object[]>();
-        if (IS_DML_RECOVERY_TEST_ON) {
-            TestCaseContext.Builder b = new TestCaseContext.Builder();
-            for (TestCaseContext ctx : b.build(new File(TESTSUITE_PATH_BASE))) {
-                if (ctx.getTestCase().getFilePath().equals("dml"))
-                    testArgs.add(new Object[] { ctx });
-            }
+        TestCaseContext.Builder b = new TestCaseContext.Builder();
+        for (TestCaseContext ctx : b.build(new File(TESTSUITE_PATH_BASE))) {
+            if (ctx.getTestCase().getFilePath().equals("dml"))
+                testArgs.add(new Object[] { ctx });
         }
         return testArgs;
     }
diff --git a/asterix-installer/src/test/java/edu/uci/ics/asterix/installer/transaction/RecoveryIT.java b/asterix-installer/src/test/java/edu/uci/ics/asterix/installer/transaction/RecoveryIT.java
index 730b9b0..44ca366 100644
--- a/asterix-installer/src/test/java/edu/uci/ics/asterix/installer/transaction/RecoveryIT.java
+++ b/asterix-installer/src/test/java/edu/uci/ics/asterix/installer/transaction/RecoveryIT.java
@@ -38,8 +38,6 @@
 
 @RunWith(Parameterized.class)
 public class RecoveryIT {
-    // indicate wheth Recovery_DDL will be executed
-    private static final boolean IS_RECOVERY_DDL_TEST_ON = false;
 
     private static final Logger LOGGER = Logger.getLogger(RecoveryIT.class.getName());
     private static final String PATH_ACTUAL = "rttest/";
@@ -105,10 +103,6 @@
         Collection<Object[]> testArgs = new ArrayList<Object[]>();
         TestCaseContext.Builder b = new TestCaseContext.Builder();
         for (TestCaseContext ctx : b.build(new File(PATH_BASE))) {
-            
-            if (!IS_RECOVERY_DDL_TEST_ON && ctx.getTestCase().getFilePath().contains("recovery_ddl"))
-                continue;
-            
             testArgs.add(new Object[] { ctx });
         }
         return testArgs;
diff --git a/asterix-installer/src/test/resources/transactionts/testsuite.xml b/asterix-installer/src/test/resources/transactionts/testsuite.xml
index 15db39b..f2bd2b5 100644
--- a/asterix-installer/src/test/resources/transactionts/testsuite.xml
+++ b/asterix-installer/src/test/resources/transactionts/testsuite.xml
@@ -85,7 +85,7 @@
         <output-dir compare="Text">load_after_recovery</output-dir>
       </compilation-unit>
     </test-case>
-<!--
+    
     <test-case FilePath="recovery_ddl">
       <compilation-unit name="insert_after_recovery">
         <output-dir compare="Text">insert_after_recovery</output-dir>
@@ -97,7 +97,7 @@
         <output-dir compare="Text">delete_after_recovery</output-dir>
       </compilation-unit>
     </test-case>
--->
+    
     <test-case FilePath="recovery_ddl">
       <compilation-unit name="function_recovery">
         <output-dir compare="Text">function_recovery</output-dir>
