This is an automated email from the ASF dual-hosted git repository.
zhangliang 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 c9e8eb7 Integration testing framework micro adjustments. (#12174)
c9e8eb7 is described below
commit c9e8eb7df8756da8b88bdb01472f089226577171
Author: Jieker <[email protected]>
AuthorDate: Fri Sep 3 17:45:39 2021 +0800
Integration testing framework micro adjustments. (#12174)
* Increase the speed of integrated speed measurement.
* add eof
* prefect formulate
---
.../test/integration/engine/it/BaseITCase.java | 11 +++---
.../test/integration/engine/it/BatchITCase.java | 19 ++++-----
.../test/integration/engine/it/dcl/BaseDCLIT.java | 16 ++++----
.../test/integration/engine/it/ddl/BaseDDLIT.java | 19 ++++-----
.../integration/engine/it/ddl/GeneralDDLIT.java | 46 +++++++++++++++-------
.../test/integration/engine/it/dml/BaseDMLIT.java | 13 +++---
.../test/integration/engine/it/dql/BaseDQLIT.java | 10 +++--
7 files changed, 79 insertions(+), 55 deletions(-)
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/BaseITCase.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/BaseITCase.java
index 479ba1b..13f6163 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/BaseITCase.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/BaseITCase.java
@@ -35,6 +35,7 @@ import org.junit.Rule;
import org.junit.runner.RunWith;
import javax.sql.DataSource;
+import java.io.IOException;
import java.text.ParseException;
import java.util.Map;
import java.util.TimeZone;
@@ -59,11 +60,11 @@ public abstract class BaseITCase {
private final IntegrationTestCase integrationTestCase;
private final ShardingSphereStorageContainer storageContainer;
-
+
private final ShardingSphereAdapterContainer adapterContainer;
private Map<String, DataSource> dataSourceMap;
-
+
private DataSource targetDataSource;
private DataSource dataSourceForReader;
@@ -84,7 +85,7 @@ public abstract class BaseITCase {
}
@Before
- public final void createDataSource() {
+ public void init() throws IOException {
dataSourceMap = compose.getDataSourceMap();
targetDataSource = dataSourceMap.get("adapterForWriter");
if (compose instanceof GovernanceContainerCompose) {
@@ -93,11 +94,11 @@ public abstract class BaseITCase {
}
@After
- public final void tearDown() throws Exception {
+ public void tearDown() throws Exception {
if (targetDataSource instanceof ShardingSphereDataSource) {
((ShardingSphereDataSource)
targetDataSource).getContextManager().close();
}
- if (dataSourceForReader != null) {
+ if (null != dataSourceForReader && dataSourceForReader instanceof
ShardingSphereDataSource) {
((ShardingSphereDataSource)
dataSourceForReader).getContextManager().close();
dataSourceMap.clear();
}
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/BatchITCase.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/BatchITCase.java
index b971ee0..622f781 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/BatchITCase.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/BatchITCase.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.test.integration.engine.it;
import lombok.AccessLevel;
import lombok.Getter;
+import lombok.SneakyThrows;
import org.apache.shardingsphere.infra.datanode.DataNode;
import org.apache.shardingsphere.sharding.support.InlineExpressionParser;
import
org.apache.shardingsphere.test.integration.cases.assertion.IntegrationTestCaseAssertion;
@@ -31,10 +32,7 @@ import
org.apache.shardingsphere.test.integration.env.EnvironmentPath;
import
org.apache.shardingsphere.test.integration.env.dataset.DataSetEnvironmentManager;
import
org.apache.shardingsphere.test.integration.junit.compose.GovernanceContainerCompose;
import
org.apache.shardingsphere.test.integration.junit.param.model.CaseParameterizedArray;
-import org.junit.After;
-import org.junit.Before;
-import javax.xml.bind.JAXBException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
@@ -67,9 +65,11 @@ public abstract class BatchITCase extends BaseITCase {
super(parameterizedArray);
this.parentPath =
parameterizedArray.getTestCaseContext().getParentPath();
}
-
- @Before
- public void fillData() throws SQLException, ParseException, IOException,
JAXBException {
+
+ @SneakyThrows
+ @Override
+ public void init() throws IOException {
+ super.init();
for (IntegrationTestCaseAssertion each :
getIntegrationTestCase().getAssertions()) {
dataSets.add(DataSetLoader.load(getParentPath(), getScenario(),
getDatabaseType(), each.getExpectedDataFile()));
}
@@ -82,9 +82,10 @@ public abstract class BatchITCase extends BaseITCase {
return getIntegrationTestCase().getSql();
}
- @After
- public void clearData() {
+ @Override
+ public void tearDown() throws Exception {
dataSetEnvironmentManager.clearData();
+ super.tearDown();
}
protected final void assertDataSets(final int[] actualUpdateCounts) throws
SQLException {
@@ -94,7 +95,7 @@ public abstract class BatchITCase extends BaseITCase {
for (String each : new
InlineExpressionParser(expectedDataSetMetadata.getDataNodes()).splitAndEvaluate())
{
DataNode dataNode = new DataNode(each);
try (Connection connection = getCompose() instanceof
GovernanceContainerCompose
- ?
getCompose().getDataSourceMap().get("adapterForReader").getConnection() :
getStorageContainer().getDataSourceMap().get(dataNode.getDataSourceName()).getConnection();
+ ? getDataSourceForReader().getConnection() :
getStorageContainer().getDataSourceMap().get(dataNode.getDataSourceName()).getConnection();
PreparedStatement preparedStatement =
connection.prepareStatement(String.format("SELECT * FROM %s ORDER BY 1",
dataNode.getTableName()))) {
assertDataSet(preparedStatement, expected.findRows(dataNode),
expectedDataSetMetadata);
}
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/dcl/BaseDCLIT.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/dcl/BaseDCLIT.java
index b3edd15..566cf4c 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/dcl/BaseDCLIT.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/dcl/BaseDCLIT.java
@@ -17,16 +17,13 @@
package org.apache.shardingsphere.test.integration.engine.it.dcl;
+import lombok.SneakyThrows;
import org.apache.shardingsphere.test.integration.engine.it.SingleITCase;
import org.apache.shardingsphere.test.integration.env.EnvironmentPath;
import
org.apache.shardingsphere.test.integration.env.authority.AuthorityEnvironmentManager;
import
org.apache.shardingsphere.test.integration.junit.param.model.AssertionParameterizedArray;
-import org.junit.After;
-import org.junit.Before;
-import javax.xml.bind.JAXBException;
import java.io.IOException;
-import java.sql.SQLException;
public abstract class BaseDCLIT extends SingleITCase {
@@ -36,8 +33,10 @@ public abstract class BaseDCLIT extends SingleITCase {
super(parameterizedArray);
}
- @Before
- public final void insertData() throws SQLException, IOException,
JAXBException {
+ @SneakyThrows
+ @Override
+ public final void init() throws IOException {
+ super.init();
authorityEnvironmentManager = new AuthorityEnvironmentManager(
EnvironmentPath.getAuthorityFile(getScenario()),
getStorageContainer().getDataSourceMap(),
@@ -46,8 +45,9 @@ public abstract class BaseDCLIT extends SingleITCase {
authorityEnvironmentManager.initialize();
}
- @After
- public final void cleanData() throws SQLException {
+ @Override
+ public final void tearDown() throws Exception {
authorityEnvironmentManager.clean();
+ super.tearDown();
}
}
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/ddl/BaseDDLIT.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/ddl/BaseDDLIT.java
index 776a7f7..ecead5e 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/ddl/BaseDDLIT.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/ddl/BaseDDLIT.java
@@ -20,8 +20,8 @@ package
org.apache.shardingsphere.test.integration.engine.it.ddl;
import com.google.common.base.Splitter;
import lombok.SneakyThrows;
import org.apache.shardingsphere.infra.datanode.DataNode;
-import org.apache.shardingsphere.sharding.support.InlineExpressionParser;
import
org.apache.shardingsphere.sharding.route.engine.exception.NoSuchTableException;
+import org.apache.shardingsphere.sharding.support.InlineExpressionParser;
import
org.apache.shardingsphere.test.integration.cases.dataset.metadata.DataSetColumn;
import
org.apache.shardingsphere.test.integration.cases.dataset.metadata.DataSetIndex;
import
org.apache.shardingsphere.test.integration.cases.dataset.metadata.DataSetMetadata;
@@ -30,9 +30,8 @@ import
org.apache.shardingsphere.test.integration.env.EnvironmentPath;
import
org.apache.shardingsphere.test.integration.env.dataset.DataSetEnvironmentManager;
import
org.apache.shardingsphere.test.integration.junit.compose.GovernanceContainerCompose;
import
org.apache.shardingsphere.test.integration.junit.param.model.AssertionParameterizedArray;
-import org.junit.After;
-import org.junit.Before;
+import java.io.IOException;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.PreparedStatement;
@@ -58,9 +57,10 @@ public abstract class BaseDDLIT extends SingleITCase {
super(parameterizedArray);
}
- @Before
@SneakyThrows
- public final void initTables() {
+ @Override
+ public final void init() throws IOException {
+ super.init();
assertNotNull("Expected affected table is required",
getAssertion().getInitialSQL());
assertNotNull("Expected affected table is required",
getAssertion().getInitialSQL().getAffectedTable());
dataSetEnvironmentManager = new DataSetEnvironmentManager(
@@ -73,12 +73,13 @@ public abstract class BaseDDLIT extends SingleITCase {
}
}
- @After
- public final void destroyTables() throws SQLException {
+ @Override
+ public final void tearDown() throws Exception {
dataSetEnvironmentManager.clearData();
try (Connection connection = getTargetDataSource().getConnection()) {
dropInitializedTable(connection);
}
+ super.tearDown();
}
private void executeInitSQLs(final Connection connection) throws
SQLException {
@@ -112,7 +113,7 @@ public abstract class BaseDDLIT extends SingleITCase {
assertColumnMetaData(actualColumns, expected.getColumns());
assertIndexMetaData(actualIndexes, expected.getIndexes());
}
-
+
private void assertNotContainsTable(final Collection<DataNode> dataNodes)
throws SQLException {
for (DataNode each : dataNodes) {
try (Connection connection = getCompose() instanceof
GovernanceContainerCompose
@@ -125,7 +126,7 @@ public abstract class BaseDDLIT extends SingleITCase {
private void assertNotContainsTable(final Connection connection, final
String tableName) throws SQLException {
assertFalse(String.format("Table `%s` should not existed", tableName),
connection.getMetaData().getTables(null, null, tableName, new
String[]{"TABLE"}).next());
}
-
+
private List<DataSetColumn> getActualColumns(final Collection<DataNode>
dataNodes) throws SQLException {
Set<DataSetColumn> result = new LinkedHashSet<>();
for (DataNode each : dataNodes) {
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/ddl/GeneralDDLIT.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/ddl/GeneralDDLIT.java
index aa77cce..72f11c2 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/ddl/GeneralDDLIT.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/ddl/GeneralDDLIT.java
@@ -36,6 +36,8 @@ import java.text.ParseException;
import java.util.Collection;
import java.util.stream.Collectors;
+import static org.junit.Assert.assertFalse;
+
@ParallelRuntimeStrategy(ParallelLevel.SCENARIO)
public final class GeneralDDLIT extends BaseDDLIT {
@@ -53,36 +55,52 @@ public final class GeneralDDLIT extends BaseDDLIT {
.peek(each ->
each.setCompose(composeManager.getOrCreateCompose(each)))
.collect(Collectors.toList());
}
-
+
@Test
public void assertExecuteUpdate() throws SQLException, ParseException {
try (Connection connection = getTargetDataSource().getConnection()) {
if (SQLExecuteType.Literal == getSqlExecuteType()) {
- try (Statement statement = connection.createStatement()) {
- statement.executeUpdate(getSQL());
- }
+ executeUpdateForStatement(connection);
} else {
- try (PreparedStatement statement =
connection.prepareStatement(getSQL())) {
- statement.executeUpdate();
- }
+ executeUpdateForPreparedStatement(connection);
}
assertTableMetaData();
}
}
-
+
+ private void executeUpdateForStatement(final Connection connection) throws
SQLException, ParseException {
+ try (Statement statement = connection.createStatement()) {
+ assertFalse("Not a DDL statement.",
statement.executeUpdate(getSQL()) > 0);
+ }
+ }
+
+ private void executeUpdateForPreparedStatement(final Connection
connection) throws SQLException, ParseException {
+ try (PreparedStatement preparedStatement =
connection.prepareStatement(getSQL())) {
+ assertFalse("Not a DDL statement.",
preparedStatement.executeUpdate() > 0);
+ }
+ }
+
@Test
public void assertExecute() throws SQLException, ParseException {
try (Connection connection = getTargetDataSource().getConnection()) {
if (SQLExecuteType.Literal == getSqlExecuteType()) {
- try (Statement statement = connection.createStatement()) {
- statement.execute(getSQL());
- }
+ executeForStatement(connection);
} else {
- try (PreparedStatement statement =
connection.prepareStatement(getSQL())) {
- statement.execute();
- }
+ executeForPreparedStatement(connection);
}
assertTableMetaData();
}
}
+
+ private void executeForStatement(final Connection connection) throws
SQLException, ParseException {
+ try (Statement statement = connection.createStatement()) {
+ assertFalse("Not a DDL statement.", statement.execute(getSQL()));
+ }
+ }
+
+ private void executeForPreparedStatement(final Connection connection)
throws SQLException, ParseException {
+ try (PreparedStatement preparedStatement =
connection.prepareStatement(getSQL())) {
+ assertFalse("Not a DDL statement.", preparedStatement.execute());
+ }
+ }
}
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/dml/BaseDMLIT.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/dml/BaseDMLIT.java
index 285627e..361fd5c 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/dml/BaseDMLIT.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/dml/BaseDMLIT.java
@@ -29,9 +29,8 @@ import
org.apache.shardingsphere.test.integration.env.EnvironmentPath;
import
org.apache.shardingsphere.test.integration.env.dataset.DataSetEnvironmentManager;
import
org.apache.shardingsphere.test.integration.junit.compose.GovernanceContainerCompose;
import
org.apache.shardingsphere.test.integration.junit.param.model.AssertionParameterizedArray;
-import org.junit.After;
-import org.junit.Before;
+import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
@@ -54,9 +53,10 @@ public abstract class BaseDMLIT extends SingleITCase {
super(parameterizedArray);
}
- @Before
@SneakyThrows
- public final void fillData() {
+ @Override
+ public final void init() throws IOException {
+ super.init();
dataSetEnvironmentManager = new DataSetEnvironmentManager(
EnvironmentPath.getDataSetFile(getScenario()),
getStorageContainer().getDataSourceMap()
@@ -64,9 +64,10 @@ public abstract class BaseDMLIT extends SingleITCase {
dataSetEnvironmentManager.fillData();
}
- @After
- public final void cleanup() {
+ @Override
+ public final void tearDown() throws Exception {
dataSetEnvironmentManager.clearData();
+ super.tearDown();
}
protected final void assertDataSet(final int actualUpdateCount) throws
SQLException {
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/dql/BaseDQLIT.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/dql/BaseDQLIT.java
index 246face..e034b56 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/dql/BaseDQLIT.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/dql/BaseDQLIT.java
@@ -17,6 +17,7 @@
package org.apache.shardingsphere.test.integration.engine.it.dql;
+import lombok.SneakyThrows;
import
org.apache.shardingsphere.test.integration.cases.dataset.metadata.DataSetColumn;
import
org.apache.shardingsphere.test.integration.cases.dataset.metadata.DataSetMetadata;
import org.apache.shardingsphere.test.integration.cases.dataset.row.DataSetRow;
@@ -24,7 +25,6 @@ import
org.apache.shardingsphere.test.integration.engine.it.SingleITCase;
import org.apache.shardingsphere.test.integration.env.EnvironmentPath;
import
org.apache.shardingsphere.test.integration.env.dataset.DataSetEnvironmentManager;
import
org.apache.shardingsphere.test.integration.junit.param.model.AssertionParameterizedArray;
-import org.junit.Before;
import javax.xml.bind.JAXBException;
import java.io.IOException;
@@ -47,9 +47,11 @@ public abstract class BaseDQLIT extends SingleITCase {
public BaseDQLIT(final AssertionParameterizedArray parameter) {
super(parameter);
}
-
- @Before
- public void setup() {
+
+ @SneakyThrows
+ @Override
+ public void init() throws IOException {
+ super.init();
compose.executeOnStarted(compose -> {
try {
new DataSetEnvironmentManager(