You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2020/12/28 11:55:29 UTC

[shardingsphere] branch master updated: Rename path to parentPath (#8793)

This is an automated email from the ASF dual-hosted git repository.

panjuan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new fb3ace3  Rename path to parentPath (#8793)
fb3ace3 is described below

commit fb3ace364c17245c3fe7b26d1c012b8b1a13dfdf
Author: Liang Zhang <te...@163.com>
AuthorDate: Mon Dec 28 19:55:00 2020 +0800

    Rename path to parentPath (#8793)
    
    * Add IntegrateTestCaseContext
    
    * Rename IntegrateTestCaseContext.parentPath
    
    * Rename IntegrateTestCasesLoader.testCaseContexts
    
    * Refactor IntegrateTestCasesLoader
    
    * Refactor IntegrateTestCasesLoader
    
    * Rename BaseIT.setUpDatabasesAndTables
    
    * Rename path to parentPath
---
 ...TestCase.java => IntegrateTestCaseContext.java} | 32 +++---------
 .../cases/assertion/IntegrateTestCasesLoader.java  | 39 +++++++-------
 .../cases/assertion/root/IntegrateTestCase.java    |  4 +-
 .../test/integration/engine/BaseIT.java            |  2 +-
 .../test/integration/engine/BatchIT.java           | 20 ++++----
 .../test/integration/engine/SingleIT.java          |  4 +-
 .../test/integration/engine/dcl/BaseDCLIT.java     |  6 +--
 .../test/integration/engine/dcl/GeneralDCLIT.java  |  4 +-
 .../test/integration/engine/ddl/BaseDDLIT.java     |  4 +-
 .../test/integration/engine/ddl/GeneralDDLIT.java  |  4 +-
 .../integration/engine/dml/AdditionalDMLIT.java    |  4 +-
 .../test/integration/engine/dml/BaseDMLIT.java     | 16 +++---
 .../test/integration/engine/dml/BatchDMLIT.java    | 18 +++----
 .../test/integration/engine/dml/GeneralDMLIT.java  |  4 +-
 .../integration/engine/dql/AdditionalDQLIT.java    |  4 +-
 .../test/integration/engine/dql/BaseDQLIT.java     |  6 +--
 .../test/integration/engine/dql/GeneralDQLIT.java  |  4 +-
 .../engine/util/IntegrateTestParameters.java       | 59 +++++++++++-----------
 18 files changed, 109 insertions(+), 125 deletions(-)

diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/cases/assertion/root/IntegrateTestCase.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/cases/assertion/IntegrateTestCaseContext.java
similarity index 56%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/cases/assertion/root/IntegrateTestCase.java
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/cases/assertion/IntegrateTestCaseContext.java
index d4f3f88..f78430d 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/cases/assertion/root/IntegrateTestCase.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/cases/assertion/IntegrateTestCaseContext.java
@@ -15,36 +15,20 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.test.integration.cases.assertion.root;
+package org.apache.shardingsphere.test.integration.cases.assertion;
 
 import lombok.Getter;
-import lombok.Setter;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
-import java.util.List;
+import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.test.integration.cases.assertion.root.IntegrateTestCase;
 
 /**
- * JAXB definition of integrate test case.
+ * Integrate test case context.
  */
+@RequiredArgsConstructor
 @Getter
-@XmlAccessorType(XmlAccessType.FIELD)
-public abstract class IntegrateTestCase {
-    
-    @XmlAttribute(name = "sql")
-    private String sql;
-    
-    @XmlAttribute(name = "db-types")
-    private String dbTypes;
+public final class IntegrateTestCaseContext {
     
-    @Setter
-    private String path;
+    private final IntegrateTestCase testCase;
     
-    /**
-     * Get integrate test case assertions.
-     * 
-     * @return integrate test case assertions
-     */
-    public abstract List<? extends IntegrateTestCaseAssertion> getIntegrateTestCaseAssertions();
+    private final String parentPath;
 }
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/cases/assertion/IntegrateTestCasesLoader.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/cases/assertion/IntegrateTestCasesLoader.java
index 413f5f9..9bcb881 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/cases/assertion/IntegrateTestCasesLoader.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/cases/assertion/IntegrateTestCasesLoader.java
@@ -19,14 +19,12 @@ package org.apache.shardingsphere.test.integration.cases.assertion;
 
 import com.google.common.base.Preconditions;
 import lombok.SneakyThrows;
-import lombok.extern.slf4j.Slf4j;
+import org.apache.shardingsphere.test.integration.cases.IntegrateTestCaseType;
 import org.apache.shardingsphere.test.integration.cases.assertion.dcl.DCLIntegrateTestCases;
 import org.apache.shardingsphere.test.integration.cases.assertion.ddl.DDLIntegrateTestCases;
 import org.apache.shardingsphere.test.integration.cases.assertion.dml.DMLIntegrateTestCases;
 import org.apache.shardingsphere.test.integration.cases.assertion.dql.DQLIntegrateTestCases;
-import org.apache.shardingsphere.test.integration.cases.assertion.root.IntegrateTestCase;
 import org.apache.shardingsphere.test.integration.cases.assertion.root.IntegrateTestCases;
-import org.apache.shardingsphere.test.integration.cases.IntegrateTestCaseType;
 
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.JAXBException;
@@ -45,16 +43,16 @@ import java.util.LinkedHashMap;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * Integrate test cases loader.
  */
-@Slf4j
 public final class IntegrateTestCasesLoader {
     
     private static final IntegrateTestCasesLoader INSTANCE = new IntegrateTestCasesLoader();
     
-    private final Map<IntegrateTestCaseType, List<? extends IntegrateTestCase>> integrateTestCases = new LinkedHashMap<>();
+    private final Map<IntegrateTestCaseType, List<IntegrateTestCaseContext>> testCaseContexts = new LinkedHashMap<>();
     
     /**
      * Get singleton instance.
@@ -66,30 +64,29 @@ public final class IntegrateTestCasesLoader {
     }
     
     /**
-     * Get integrate test cases.
+     * Get integrate test case contexts.
      * 
      * @param caseType integration test case type
-     * @return integrate test cases
+     * @return integrate test case contexts
      */
-    public List<? extends IntegrateTestCase> getTestCases(final IntegrateTestCaseType caseType) {
-        integrateTestCases.putIfAbsent(caseType, loadIntegrateTestCases(caseType));
-        return integrateTestCases.get(caseType);
+    public List<IntegrateTestCaseContext> getTestCaseContexts(final IntegrateTestCaseType caseType) {
+        testCaseContexts.putIfAbsent(caseType, loadIntegrateTestCaseContexts(caseType));
+        return testCaseContexts.get(caseType);
     }
     
     @SneakyThrows({IOException.class, URISyntaxException.class, JAXBException.class})
-    private List<? extends IntegrateTestCase> loadIntegrateTestCases(final IntegrateTestCaseType caseType) {
+    private List<IntegrateTestCaseContext> loadIntegrateTestCaseContexts(final IntegrateTestCaseType caseType) {
         URL url = IntegrateTestCasesLoader.class.getClassLoader().getResource("integrate/cases/");
-        Preconditions.checkNotNull(url, "Cannot found integrate test cases.");
-        return loadIntegrateTestCases(url, caseType);
+        Preconditions.checkNotNull(url, "Can not find integrate test cases.");
+        return loadIntegrateTestCaseContexts(url, caseType);
     }
     
-    private List<? extends IntegrateTestCase> loadIntegrateTestCases(final URL url, final IntegrateTestCaseType caseType) throws IOException, URISyntaxException, JAXBException {
+    private List<IntegrateTestCaseContext> loadIntegrateTestCaseContexts(final URL url, final IntegrateTestCaseType caseType) throws IOException, URISyntaxException, JAXBException {
         List<File> files = getFiles(url, caseType);
-        Preconditions.checkNotNull(files, "Cannot found integrate test cases.");
-        List<? extends IntegrateTestCase> result = new LinkedList<>();
+        Preconditions.checkNotNull(files, "Can not find integrate test cases.");
+        List<IntegrateTestCaseContext> result = new LinkedList<>();
         for (File each : files) {
-            result = unmarshal(each.getPath(), caseType).getIntegrateTestCases();
-            result.forEach(testCase -> testCase.setPath(each.getParent()));
+            result.addAll(getIntegrateTestCaseContexts(each, caseType));
         }
         return result;
     }
@@ -97,7 +94,7 @@ public final class IntegrateTestCasesLoader {
     private static List<File> getFiles(final URL url, final IntegrateTestCaseType caseType) throws IOException, URISyntaxException {
         List<File> result = new LinkedList<>();
         Files.walkFileTree(Paths.get(url.toURI()), new SimpleFileVisitor<Path>() {
-            
+
             @Override
             public FileVisitResult visitFile(final Path file, final BasicFileAttributes basicFileAttributes) {
                 if (file.getFileName().toString().startsWith(caseType.getFilePrefix()) && file.getFileName().toString().endsWith(".xml")) {
@@ -109,6 +106,10 @@ public final class IntegrateTestCasesLoader {
         return result;
     }
     
+    private List<IntegrateTestCaseContext> getIntegrateTestCaseContexts(final File file, final IntegrateTestCaseType caseType) throws IOException, JAXBException {
+        return unmarshal(file.getPath(), caseType).getIntegrateTestCases().stream().map(each -> new IntegrateTestCaseContext(each, file.getParent())).collect(Collectors.toList());
+    }
+    
     private static IntegrateTestCases unmarshal(final String integrateCasesFile, final IntegrateTestCaseType caseType) throws IOException, JAXBException {
         try (FileReader reader = new FileReader(integrateCasesFile)) {
             switch (caseType) {
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/cases/assertion/root/IntegrateTestCase.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/cases/assertion/root/IntegrateTestCase.java
index d4f3f88..38b1b09 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/cases/assertion/root/IntegrateTestCase.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/cases/assertion/root/IntegrateTestCase.java
@@ -29,6 +29,7 @@ import java.util.List;
  * JAXB definition of integrate test case.
  */
 @Getter
+@Setter
 @XmlAccessorType(XmlAccessType.FIELD)
 public abstract class IntegrateTestCase {
     
@@ -38,9 +39,6 @@ public abstract class IntegrateTestCase {
     @XmlAttribute(name = "db-types")
     private String dbTypes;
     
-    @Setter
-    private String path;
-    
     /**
      * Get integrate test case assertions.
      * 
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/BaseIT.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/BaseIT.java
index fb89912..2801397 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/BaseIT.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/BaseIT.java
@@ -87,7 +87,7 @@ public abstract class BaseIT {
                 : YamlShardingSphereDataSourceFactory.createDataSource(dataSourceMap, new File(EnvironmentPath.getRuleResourceFile(ruleType)));
     }
     
-    protected static void createDatabasesAndTables() {
+    protected static void setUpDatabasesAndTables() {
         createDatabases();
         dropTables();
         createTables();
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/BatchIT.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/BatchIT.java
index 7fbddd3..1195547 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/BatchIT.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/BatchIT.java
@@ -20,7 +20,10 @@ package org.apache.shardingsphere.test.integration.engine;
 import lombok.AccessLevel;
 import lombok.Getter;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.shardingsphere.test.integration.cases.assertion.root.IntegrateTestCase;
+import org.apache.shardingsphere.infra.database.type.DatabaseType;
+import org.apache.shardingsphere.infra.datanode.DataNode;
+import org.apache.shardingsphere.sharding.algorithm.sharding.inline.InlineExpressionParser;
+import org.apache.shardingsphere.test.integration.cases.assertion.IntegrateTestCaseContext;
 import org.apache.shardingsphere.test.integration.cases.assertion.root.IntegrateTestCaseAssertion;
 import org.apache.shardingsphere.test.integration.cases.dataset.DataSet;
 import org.apache.shardingsphere.test.integration.cases.dataset.metadata.DataSetColumn;
@@ -29,9 +32,6 @@ import org.apache.shardingsphere.test.integration.cases.dataset.row.DataSetRow;
 import org.apache.shardingsphere.test.integration.cases.dataset.util.DataSetPathUtil;
 import org.apache.shardingsphere.test.integration.env.EnvironmentPath;
 import org.apache.shardingsphere.test.integration.env.dataset.DataSetEnvironmentManager;
-import org.apache.shardingsphere.sharding.algorithm.sharding.inline.InlineExpressionParser;
-import org.apache.shardingsphere.infra.database.type.DatabaseType;
-import org.apache.shardingsphere.infra.datanode.DataNode;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
@@ -65,27 +65,27 @@ public abstract class BatchIT extends BaseIT {
     
     private static DataSetEnvironmentManager dataSetEnvironmentManager;
     
-    private final IntegrateTestCase integrateTestCase;
+    private final IntegrateTestCaseContext testCaseContext;
     
     private final String sql;
     
     private final Collection<String> expectedDataFiles;
     
-    protected BatchIT(final IntegrateTestCase integrateTestCase, 
+    protected BatchIT(final IntegrateTestCaseContext testCaseContext, 
                       final String ruleType, final DatabaseType databaseType, final String sql) throws IOException, JAXBException, SQLException {
         super(ruleType, databaseType);
-        this.integrateTestCase = integrateTestCase;
+        this.testCaseContext = testCaseContext;
         this.sql = sql;
         expectedDataFiles = new LinkedList<>();
-        for (IntegrateTestCaseAssertion each : integrateTestCase.getIntegrateTestCaseAssertions()) {
-            expectedDataFiles.add(DataSetPathUtil.getDataSetPath(integrateTestCase.getPath(), ruleType, databaseType, each.getExpectedDataFile()));
+        for (IntegrateTestCaseAssertion each : testCaseContext.getTestCase().getIntegrateTestCaseAssertions()) {
+            expectedDataFiles.add(DataSetPathUtil.getDataSetPath(testCaseContext.getParentPath(), ruleType, databaseType, each.getExpectedDataFile()));
         }
         dataSetEnvironmentManager = new DataSetEnvironmentManager(EnvironmentPath.getDataInitializeResourceFile(ruleType), getDataSourceMap());
     }
     
     @BeforeClass
     public static void initDatabasesAndTables() {
-        createDatabasesAndTables();
+        setUpDatabasesAndTables();
     }
     
     @AfterClass
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/SingleIT.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/SingleIT.java
index ee617cb..c036a3f 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/SingleIT.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/SingleIT.java
@@ -47,14 +47,14 @@ public abstract class SingleIT extends BaseIT {
     
     private final String originalSQL;
     
-    protected SingleIT(final String path, final IntegrateTestCaseAssertion assertion, final String ruleType, 
+    protected SingleIT(final String parentPath, final IntegrateTestCaseAssertion assertion, final String ruleType, 
                        final DatabaseType databaseType, final SQLCaseType caseType, final String sql) throws IOException, JAXBException, SQLException, ParseException {
         super(ruleType, databaseType);
         this.assertion = assertion;
         this.caseType = caseType;
         originalSQL = sql;
         this.sql = convert(sql);
-        expectedDataFile = null == assertion ? null : DataSetPathUtil.getDataSetPath(path, ruleType, databaseType, assertion.getExpectedDataFile());
+        expectedDataFile = null == assertion ? null : DataSetPathUtil.getDataSetPath(parentPath, ruleType, databaseType, assertion.getExpectedDataFile());
     }
     
     private String convert(final String sql) throws ParseException {
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dcl/BaseDCLIT.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dcl/BaseDCLIT.java
index e6755f2..88c6911 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dcl/BaseDCLIT.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dcl/BaseDCLIT.java
@@ -47,9 +47,9 @@ public abstract class BaseDCLIT extends SingleIT {
     
     private final AuthorityEnvironmentManager authorityEnvironmentManager;
     
-    protected BaseDCLIT(final String path, final DCLIntegrateTestCaseAssertion assertion, final String ruleType,
+    protected BaseDCLIT(final String parentPath, final DCLIntegrateTestCaseAssertion assertion, final String ruleType,
                         final DatabaseType databaseType, final SQLCaseType caseType, final String sql) throws IOException, JAXBException, SQLException, ParseException {
-        super(path, assertion, ruleType, databaseType, caseType, sql);
+        super(parentPath, assertion, ruleType, databaseType, caseType, sql);
         authorityEnvironmentManager = new AuthorityEnvironmentManager(
                 EnvironmentPath.getAuthorityResourcesPath(ruleType), null == getDataSourceMap() ? null : createInstanceDataSourceMap(), getDatabaseType());
     }
@@ -97,7 +97,7 @@ public abstract class BaseDCLIT extends SingleIT {
     
     @BeforeClass
     public static void initDatabasesAndTables() {
-        createDatabasesAndTables();
+        setUpDatabasesAndTables();
     }
 
     @AfterClass
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dcl/GeneralDCLIT.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dcl/GeneralDCLIT.java
index bdb6a48..35b0fb0 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dcl/GeneralDCLIT.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dcl/GeneralDCLIT.java
@@ -34,9 +34,9 @@ import java.util.Collection;
 
 public final class GeneralDCLIT extends BaseDCLIT {
     
-    public GeneralDCLIT(final String path, final DCLIntegrateTestCaseAssertion assertion, final String ruleType,
+    public GeneralDCLIT(final String parentPath, final DCLIntegrateTestCaseAssertion assertion, final String ruleType,
                         final String databaseType, final SQLCaseType caseType, final String sql) throws IOException, JAXBException, SQLException, ParseException {
-        super(path, assertion, ruleType, DatabaseTypeRegistry.getActualDatabaseType(databaseType), caseType, sql);
+        super(parentPath, assertion, ruleType, DatabaseTypeRegistry.getActualDatabaseType(databaseType), caseType, sql);
     }
     
     @Parameters(name = "{2} -> {3} -> {4} -> {5}")
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/ddl/BaseDDLIT.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/ddl/BaseDDLIT.java
index f12c0f7..31859d7 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/ddl/BaseDDLIT.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/ddl/BaseDDLIT.java
@@ -58,9 +58,9 @@ public abstract class BaseDDLIT extends SingleIT {
     
     private final DatabaseType databaseType;
     
-    protected BaseDDLIT(final String path, final DDLIntegrateTestCaseAssertion assertion, final String ruleType, 
+    protected BaseDDLIT(final String parentPath, final DDLIntegrateTestCaseAssertion assertion, final String ruleType, 
                         final DatabaseType databaseType, final SQLCaseType caseType, final String sql) throws IOException, JAXBException, SQLException, ParseException {
-        super(path, assertion, ruleType, databaseType, caseType, sql);
+        super(parentPath, assertion, ruleType, databaseType, caseType, sql);
         this.assertion = assertion;
         this.databaseType = databaseType;
     }
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/ddl/GeneralDDLIT.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/ddl/GeneralDDLIT.java
index b30cc42..4eef20f 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/ddl/GeneralDDLIT.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/ddl/GeneralDDLIT.java
@@ -38,9 +38,9 @@ public final class GeneralDDLIT extends BaseDDLIT {
     
     private final DDLIntegrateTestCaseAssertion assertion;
     
-    public GeneralDDLIT(final String path, final DDLIntegrateTestCaseAssertion assertion, final String ruleType,
+    public GeneralDDLIT(final String parentPath, final DDLIntegrateTestCaseAssertion assertion, final String ruleType,
                         final String databaseType, final SQLCaseType caseType, final String sql) throws IOException, JAXBException, SQLException, ParseException {
-        super(path, assertion, ruleType, DatabaseTypeRegistry.getActualDatabaseType(databaseType), caseType, sql);
+        super(parentPath, assertion, ruleType, DatabaseTypeRegistry.getActualDatabaseType(databaseType), caseType, sql);
         this.assertion = assertion;
     }
     
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dml/AdditionalDMLIT.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dml/AdditionalDMLIT.java
index 5afc99d..b9e2fdb 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dml/AdditionalDMLIT.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dml/AdditionalDMLIT.java
@@ -43,9 +43,9 @@ public final class AdditionalDMLIT extends BaseDMLIT {
     
     private final DMLIntegrateTestCaseAssertion assertion;
     
-    public AdditionalDMLIT(final String path, final DMLIntegrateTestCaseAssertion assertion, final String ruleType,
+    public AdditionalDMLIT(final String parentPath, final DMLIntegrateTestCaseAssertion assertion, final String ruleType,
                            final DatabaseType databaseType, final SQLCaseType caseType, final String sql) throws IOException, JAXBException, SQLException, ParseException {
-        super(path, assertion, ruleType, databaseType, caseType, sql);
+        super(parentPath, assertion, ruleType, databaseType, caseType, sql);
         this.assertion = assertion;
     }
     
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dml/BaseDMLIT.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dml/BaseDMLIT.java
index ee96f3a..a55908b 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dml/BaseDMLIT.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dml/BaseDMLIT.java
@@ -17,8 +17,11 @@
 
 package org.apache.shardingsphere.test.integration.engine.dml;
 
-import java.sql.Statement;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.shardingsphere.infra.database.type.DatabaseType;
+import org.apache.shardingsphere.infra.database.type.dialect.PostgreSQLDatabaseType;
+import org.apache.shardingsphere.infra.datanode.DataNode;
+import org.apache.shardingsphere.sharding.algorithm.sharding.inline.InlineExpressionParser;
 import org.apache.shardingsphere.test.integration.cases.assertion.dml.DMLIntegrateTestCaseAssertion;
 import org.apache.shardingsphere.test.integration.cases.assertion.root.SQLCaseType;
 import org.apache.shardingsphere.test.integration.cases.dataset.DataSet;
@@ -28,10 +31,6 @@ import org.apache.shardingsphere.test.integration.cases.dataset.row.DataSetRow;
 import org.apache.shardingsphere.test.integration.engine.SingleIT;
 import org.apache.shardingsphere.test.integration.env.EnvironmentPath;
 import org.apache.shardingsphere.test.integration.env.dataset.DataSetEnvironmentManager;
-import org.apache.shardingsphere.infra.database.type.dialect.PostgreSQLDatabaseType;
-import org.apache.shardingsphere.sharding.algorithm.sharding.inline.InlineExpressionParser;
-import org.apache.shardingsphere.infra.database.type.DatabaseType;
-import org.apache.shardingsphere.infra.datanode.DataNode;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
@@ -46,6 +45,7 @@ import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.ResultSetMetaData;
 import java.sql.SQLException;
+import java.sql.Statement;
 import java.sql.Types;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
@@ -59,15 +59,15 @@ public abstract class BaseDMLIT extends SingleIT {
     
     private final DataSetEnvironmentManager dataSetEnvironmentManager;
     
-    protected BaseDMLIT(final String path, final DMLIntegrateTestCaseAssertion assertion, final String ruleType,
+    protected BaseDMLIT(final String parentPath, final DMLIntegrateTestCaseAssertion assertion, final String ruleType,
                         final DatabaseType databaseType, final SQLCaseType caseType, final String sql) throws IOException, JAXBException, SQLException, ParseException {
-        super(path, assertion, ruleType, databaseType, caseType, sql);
+        super(parentPath, assertion, ruleType, databaseType, caseType, sql);
         dataSetEnvironmentManager = new DataSetEnvironmentManager(EnvironmentPath.getDataInitializeResourceFile(getRuleType()), getDataSourceMap());
     }
     
     @BeforeClass
     public static void initDatabasesAndTables() {
-        createDatabasesAndTables();
+        setUpDatabasesAndTables();
     }
     
     @AfterClass
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dml/BatchDMLIT.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dml/BatchDMLIT.java
index bf47d4d..4833748 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dml/BatchDMLIT.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dml/BatchDMLIT.java
@@ -17,13 +17,13 @@
 
 package org.apache.shardingsphere.test.integration.engine.dml;
 
-import org.apache.shardingsphere.test.integration.cases.assertion.root.IntegrateTestCase;
+import org.apache.shardingsphere.infra.database.type.DatabaseTypeRegistry;
+import org.apache.shardingsphere.test.integration.cases.IntegrateTestCaseType;
+import org.apache.shardingsphere.test.integration.cases.assertion.IntegrateTestCaseContext;
 import org.apache.shardingsphere.test.integration.cases.assertion.root.IntegrateTestCaseAssertion;
 import org.apache.shardingsphere.test.integration.cases.assertion.root.SQLValue;
 import org.apache.shardingsphere.test.integration.engine.BatchIT;
-import org.apache.shardingsphere.test.integration.cases.IntegrateTestCaseType;
 import org.apache.shardingsphere.test.integration.engine.util.IntegrateTestParameters;
-import org.apache.shardingsphere.infra.database.type.DatabaseTypeRegistry;
 import org.junit.Test;
 import org.junit.runners.Parameterized.Parameters;
 
@@ -40,12 +40,12 @@ import static org.junit.Assert.assertThat;
 
 public final class BatchDMLIT extends BatchIT {
     
-    private final IntegrateTestCase integrateTestCase;
+    private final IntegrateTestCaseContext testCaseContext;
     
-    public BatchDMLIT(final IntegrateTestCase integrateTestCase,
+    public BatchDMLIT(final IntegrateTestCaseContext testCaseContext,
                       final String ruleType, final String databaseType, final String sql) throws IOException, JAXBException, SQLException {
-        super(integrateTestCase, ruleType, DatabaseTypeRegistry.getActualDatabaseType(databaseType), sql);
-        this.integrateTestCase = integrateTestCase;
+        super(testCaseContext, ruleType, DatabaseTypeRegistry.getActualDatabaseType(databaseType), sql);
+        this.testCaseContext = testCaseContext;
     }
     
     @Parameters(name = "Rule:{1} -> {2} -> {3}")
@@ -72,7 +72,7 @@ public final class BatchDMLIT extends BatchIT {
     
     private int[] executeBatchForPreparedStatement(final Connection connection) throws SQLException, ParseException {
         try (PreparedStatement preparedStatement = connection.prepareStatement(getSql())) {
-            for (IntegrateTestCaseAssertion each : integrateTestCase.getIntegrateTestCaseAssertions()) {
+            for (IntegrateTestCaseAssertion each : testCaseContext.getTestCase().getIntegrateTestCaseAssertions()) {
                 addBatch(preparedStatement, each);
             }
             return preparedStatement.executeBatch();
@@ -98,7 +98,7 @@ public final class BatchDMLIT extends BatchIT {
         }
         try (Connection connection = getDataSource().getConnection()) {
             try (PreparedStatement preparedStatement = connection.prepareStatement(getSql())) {
-                for (IntegrateTestCaseAssertion each : integrateTestCase.getIntegrateTestCaseAssertions()) {
+                for (IntegrateTestCaseAssertion each : testCaseContext.getTestCase().getIntegrateTestCaseAssertions()) {
                     addBatch(preparedStatement, each);
                 }
                 preparedStatement.clearBatch();
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dml/GeneralDMLIT.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dml/GeneralDMLIT.java
index 2373994..5cf8da2 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dml/GeneralDMLIT.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dml/GeneralDMLIT.java
@@ -45,9 +45,9 @@ public final class GeneralDMLIT extends BaseDMLIT {
     
     private final DMLIntegrateTestCaseAssertion assertion;
     
-    public GeneralDMLIT(final String path, final DMLIntegrateTestCaseAssertion assertion, final String ruleType,
+    public GeneralDMLIT(final String parentPath, final DMLIntegrateTestCaseAssertion assertion, final String ruleType,
                         final String databaseType, final SQLCaseType caseType, final String sql) throws IOException, JAXBException, SQLException, ParseException {
-        super(path, assertion, ruleType, DatabaseTypeRegistry.getActualDatabaseType(databaseType), caseType, sql);
+        super(parentPath, assertion, ruleType, DatabaseTypeRegistry.getActualDatabaseType(databaseType), caseType, sql);
         this.assertion = assertion;
     }
     
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dql/AdditionalDQLIT.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dql/AdditionalDQLIT.java
index 1823b93..15425d5 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dql/AdditionalDQLIT.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dql/AdditionalDQLIT.java
@@ -44,9 +44,9 @@ public final class AdditionalDQLIT extends BaseDQLIT {
     
     private final DQLIntegrateTestCaseAssertion assertion;
     
-    public AdditionalDQLIT(final String path, final DQLIntegrateTestCaseAssertion assertion, final String ruleType,
+    public AdditionalDQLIT(final String parentPath, final DQLIntegrateTestCaseAssertion assertion, final String ruleType,
                            final DatabaseType databaseType, final SQLCaseType caseType, final String sql) throws IOException, JAXBException, SQLException, ParseException {
-        super(path, assertion, ruleType, databaseType, caseType, sql);
+        super(parentPath, assertion, ruleType, databaseType, caseType, sql);
         this.assertion = assertion;
     }
     
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dql/BaseDQLIT.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dql/BaseDQLIT.java
index e286fc7..2fddaf9 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dql/BaseDQLIT.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dql/BaseDQLIT.java
@@ -58,14 +58,14 @@ import static org.junit.Assert.assertTrue;
 @Slf4j
 public abstract class BaseDQLIT extends SingleIT {
     
-    protected BaseDQLIT(final String path, final DQLIntegrateTestCaseAssertion assertion, final String ruleType,
+    protected BaseDQLIT(final String parentPath, final DQLIntegrateTestCaseAssertion assertion, final String ruleType,
                         final DatabaseType databaseType, final SQLCaseType caseType, final String sql) throws IOException, JAXBException, SQLException, ParseException {
-        super(path, assertion, ruleType, databaseType, caseType, sql);
+        super(parentPath, assertion, ruleType, databaseType, caseType, sql);
     }
     
     @BeforeClass
     public static void insertData() throws IOException, JAXBException, SQLException, ParseException {
-        createDatabasesAndTables();
+        setUpDatabasesAndTables();
         for (DatabaseType each : IntegrateTestEnvironment.getInstance().getDatabaseEnvironments().keySet()) {
             insertData(each);
         }
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dql/GeneralDQLIT.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dql/GeneralDQLIT.java
index e409a1b..9fa529f 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dql/GeneralDQLIT.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dql/GeneralDQLIT.java
@@ -42,9 +42,9 @@ public final class GeneralDQLIT extends BaseDQLIT {
     
     private final DQLIntegrateTestCaseAssertion assertion;
     
-    public GeneralDQLIT(final String path, final DQLIntegrateTestCaseAssertion assertion, final String ruleType,
+    public GeneralDQLIT(final String parentPath, final DQLIntegrateTestCaseAssertion assertion, final String ruleType,
                         final String databaseType, final SQLCaseType caseType, final String sql) throws IOException, JAXBException, SQLException, ParseException {
-        super(path, assertion, ruleType, DatabaseTypeRegistry.getActualDatabaseType(databaseType), caseType, sql);
+        super(parentPath, assertion, ruleType, DatabaseTypeRegistry.getActualDatabaseType(databaseType), caseType, sql);
         this.assertion = assertion;
     }
     
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/util/IntegrateTestParameters.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/util/IntegrateTestParameters.java
index cbaf508..bf91a0c 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/util/IntegrateTestParameters.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/util/IntegrateTestParameters.java
@@ -24,14 +24,14 @@ import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.shardingsphere.infra.database.type.DatabaseType;
+import org.apache.shardingsphere.infra.database.type.DatabaseTypeRegistry;
+import org.apache.shardingsphere.test.integration.cases.IntegrateTestCaseType;
+import org.apache.shardingsphere.test.integration.cases.assertion.IntegrateTestCaseContext;
 import org.apache.shardingsphere.test.integration.cases.assertion.IntegrateTestCasesLoader;
-import org.apache.shardingsphere.test.integration.cases.assertion.root.IntegrateTestCase;
 import org.apache.shardingsphere.test.integration.cases.assertion.root.IntegrateTestCaseAssertion;
 import org.apache.shardingsphere.test.integration.cases.assertion.root.SQLCaseType;
-import org.apache.shardingsphere.test.integration.cases.IntegrateTestCaseType;
 import org.apache.shardingsphere.test.integration.env.IntegrateTestEnvironment;
-import org.apache.shardingsphere.infra.database.type.DatabaseType;
-import org.apache.shardingsphere.infra.database.type.DatabaseTypeRegistry;
 import org.junit.Test;
 
 import java.util.Arrays;
@@ -62,42 +62,44 @@ public final class IntegrateTestParameters {
     public static Collection<Object[]> getParametersWithAssertion(final IntegrateTestCaseType caseType) {
         Map<DatabaseType, Collection<Object[]>> availableCases = new LinkedHashMap<>();
         Map<DatabaseType, Collection<Object[]>> disabledCases = new LinkedHashMap<>();
-        INTEGRATE_TEST_CASES_LOADER.getTestCases(caseType).forEach(integrateTestCase -> getDatabaseTypes(integrateTestCase.getDbTypes()).forEach(databaseType -> {
+        INTEGRATE_TEST_CASES_LOADER.getTestCaseContexts(caseType).forEach(testCaseContext -> getDatabaseTypes(testCaseContext.getTestCase().getDbTypes()).forEach(databaseType -> {
             if (IntegrateTestEnvironment.getInstance().getDatabaseEnvironments().containsKey(databaseType)) {
                 availableCases.putIfAbsent(databaseType, new LinkedList<>());
-                Arrays.stream(SQLCaseType.values()).forEach(sqlCaseType -> availableCases.get(databaseType).addAll(getParametersWithAssertion(databaseType, sqlCaseType, integrateTestCase)));
+                Arrays.stream(
+                        SQLCaseType.values()).forEach(sqlCaseType -> availableCases.get(databaseType).addAll(getParametersWithAssertion(databaseType, sqlCaseType, testCaseContext)));
             } else {
                 disabledCases.putIfAbsent(databaseType, new LinkedList<>());
-                Arrays.stream(SQLCaseType.values()).forEach(sqlCaseType -> disabledCases.get(databaseType).addAll(getParametersWithAssertion(databaseType, sqlCaseType, integrateTestCase)));
+                Arrays.stream(
+                        SQLCaseType.values()).forEach(sqlCaseType -> disabledCases.get(databaseType).addAll(getParametersWithAssertion(databaseType, sqlCaseType, testCaseContext)));
             }
         }));
         printTestPlan(availableCases, disabledCases, calculateRunnableTestAnnotation());
         return availableCases.values().stream().flatMap(Collection::stream).collect(Collectors.toList());
     }
     
-    private static Collection<Object[]> getParametersWithAssertion(final DatabaseType databaseType, final SQLCaseType caseType, final IntegrateTestCase integrateTestCase) {
+    private static Collection<Object[]> getParametersWithAssertion(final DatabaseType databaseType, final SQLCaseType caseType, final IntegrateTestCaseContext testCaseContext) {
         Collection<Object[]> result = new LinkedList<>();
-        if (integrateTestCase.getIntegrateTestCaseAssertions().isEmpty()) {
-            result.addAll(getParametersWithAssertion(integrateTestCase, null, databaseType, caseType));
+        if (testCaseContext.getTestCase().getIntegrateTestCaseAssertions().isEmpty()) {
+            result.addAll(getParametersWithAssertion(testCaseContext, null, databaseType, caseType));
             return result;
         }
-        for (IntegrateTestCaseAssertion each : integrateTestCase.getIntegrateTestCaseAssertions()) {
-            result.addAll(getParametersWithAssertion(integrateTestCase, each, databaseType, caseType));
+        for (IntegrateTestCaseAssertion each : testCaseContext.getTestCase().getIntegrateTestCaseAssertions()) {
+            result.addAll(getParametersWithAssertion(testCaseContext, each, databaseType, caseType));
         }
         return result;
     }
     
-    private static Collection<Object[]> getParametersWithAssertion(
-            final IntegrateTestCase integrateTestCase, final IntegrateTestCaseAssertion assertion, final DatabaseType databaseType, final SQLCaseType caseType) {
+    private static Collection<Object[]> getParametersWithAssertion(final IntegrateTestCaseContext testCaseContext, 
+                                                                   final IntegrateTestCaseAssertion assertion, final DatabaseType databaseType, final SQLCaseType caseType) {
         Collection<Object[]> result = new LinkedList<>();
         for (String each : INTEGRATE_TEST_ENVIRONMENT.getRuleTypes()) {
             Object[] data = new Object[6];
-            data[0] = integrateTestCase.getPath();
+            data[0] = testCaseContext.getParentPath();
             data[1] = assertion;
             data[2] = each;
             data[3] = databaseType.getName();
             data[4] = caseType;
-            data[5] = integrateTestCase.getSql();
+            data[5] = testCaseContext.getTestCase().getSql();
             result.add(data);
         }
         return result;
@@ -112,28 +114,27 @@ public final class IntegrateTestParameters {
     public static Collection<Object[]> getParametersWithCase(final IntegrateTestCaseType caseType) {
         Map<DatabaseType, Collection<Object[]>> availableCases = new LinkedHashMap<>();
         Map<DatabaseType, Collection<Object[]>> disabledCases = new LinkedHashMap<>();
-        INTEGRATE_TEST_CASES_LOADER.getTestCases(caseType).forEach(integrateTestCase ->
-            getDatabaseTypes(integrateTestCase.getDbTypes()).forEach(databaseType -> {
-                if (IntegrateTestEnvironment.getInstance().getDatabaseEnvironments().containsKey(databaseType)) {
-                    availableCases.putIfAbsent(databaseType, new LinkedList<>());
-                    availableCases.get(databaseType).addAll(getParametersWithCase(databaseType, integrateTestCase));
-                } else {
-                    disabledCases.putIfAbsent(databaseType, new LinkedList<>());
-                    disabledCases.get(databaseType).addAll(getParametersWithCase(databaseType, integrateTestCase));
-                }
-            }));
+        INTEGRATE_TEST_CASES_LOADER.getTestCaseContexts(caseType).forEach(testCaseContext -> getDatabaseTypes(testCaseContext.getTestCase().getDbTypes()).forEach(databaseType -> {
+            if (IntegrateTestEnvironment.getInstance().getDatabaseEnvironments().containsKey(databaseType)) {
+                availableCases.putIfAbsent(databaseType, new LinkedList<>());
+                availableCases.get(databaseType).addAll(getParametersWithCase(databaseType, testCaseContext));
+            } else {
+                disabledCases.putIfAbsent(databaseType, new LinkedList<>());
+                disabledCases.get(databaseType).addAll(getParametersWithCase(databaseType, testCaseContext));
+            }
+        }));
         printTestPlan(availableCases, disabledCases, calculateRunnableTestAnnotation());
         return availableCases.values().stream().flatMap(Collection::stream).collect(Collectors.toList());
     }
     
-    private static Collection<Object[]> getParametersWithCase(final DatabaseType databaseType, final IntegrateTestCase integrateTestCase) {
+    private static Collection<Object[]> getParametersWithCase(final DatabaseType databaseType, final IntegrateTestCaseContext testCaseContext) {
         Collection<Object[]> result = new LinkedList<>();
         for (String each : INTEGRATE_TEST_ENVIRONMENT.getRuleTypes()) {
             Object[] data = new Object[4];
-            data[0] = integrateTestCase;
+            data[0] = testCaseContext;
             data[1] = each;
             data[2] = databaseType.getName();
-            data[3] = integrateTestCase.getSql();
+            data[3] = testCaseContext.getTestCase().getSql();
             result.add(data);
         }
         return result;