Skip to content

Commit 5e1504d

Browse files
authored
build: execute integration tests in parallel (#592)
* build: execute integration tests in parallel * chore: run linter
1 parent 0f39b23 commit 5e1504d

12 files changed

+51
-30
lines changed

pom.xml

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@
141141
<groupId>com.google.api.grpc</groupId>
142142
<artifactId>proto-google-cloud-spanner-v1</artifactId>
143143
</dependency>
144-
144+
145145
<!-- Test dependencies -->
146146
<dependency>
147147
<groupId>com.google.cloud</groupId>
@@ -219,18 +219,41 @@
219219
<artifactId>maven-failsafe-plugin</artifactId>
220220
<configuration>
221221
<systemPropertyVariables>
222-
<spanner.testenv.config.class>com.google.cloud.spanner.GceTestEnvConfig</spanner.testenv.config.class>
223-
<spanner.testenv.instance>projects/gcloud-devel/instances/spanner-testing</spanner.testenv.instance>
222+
<spanner.testenv.config.class>
223+
com.google.cloud.spanner.GceTestEnvConfig
224+
</spanner.testenv.config.class>
225+
<spanner.testenv.instance>
226+
projects/gcloud-devel/instances/spanner-testing
227+
</spanner.testenv.instance>
224228
</systemPropertyVariables>
225-
<groups>com.google.cloud.spanner.IntegrationTest</groups>
226-
<excludedGroups>com.google.cloud.spanner.FlakyTest</excludedGroups>
227229
<forkedProcessTimeoutInSeconds>2400</forkedProcessTimeoutInSeconds>
228230
</configuration>
229231
<executions>
230232
<execution>
233+
<id>default</id>
234+
<goals>
235+
<goal>integration-test</goal>
236+
</goals>
237+
<configuration>
238+
<groups>com.google.cloud.spanner.IntegrationTest</groups>
239+
<excludedGroups>
240+
com.google.cloud.spanner.FlakyTest,com.google.cloud.spanner.ParallelIntegrationTest
241+
</excludedGroups>
242+
</configuration>
243+
</execution>
244+
<execution>
245+
<id>parallel-integration-test</id>
231246
<goals>
232247
<goal>integration-test</goal>
233248
</goals>
249+
<configuration>
250+
<groups>com.google.cloud.spanner.ParallelIntegrationTest</groups>
251+
<excludedGroups>
252+
com.google.cloud.spanner.FlakyTest,com.google.cloud.spanner.IntegrationTest
253+
</excludedGroups>
254+
<forkCount>8</forkCount>
255+
<reuseForks>true</reuseForks>
256+
</configuration>
234257
</execution>
235258
</executions>
236259
</plugin>
@@ -318,7 +341,7 @@
318341
</plugins>
319342
</pluginManagement>
320343
</build>
321-
344+
322345
<profiles>
323346
<profile>
324347
<id>shade</id>
@@ -361,7 +384,7 @@
361384
</build>
362385
</profile>
363386
</profiles>
364-
387+
365388
<reporting>
366389
<plugins>
367390
<plugin>

src/test/java/com/google/cloud/spanner/jdbc/ITAbstractJdbcTest.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,13 @@
2727
import com.google.cloud.spanner.testing.EmulatorSpannerHelper;
2828
import com.google.common.base.Preconditions;
2929
import com.google.common.base.Strings;
30-
import java.io.IOException;
3130
import java.nio.file.Files;
3231
import java.nio.file.Paths;
3332
import java.sql.Connection;
3433
import java.sql.DriverManager;
3534
import java.sql.PreparedStatement;
3635
import java.sql.ResultSet;
3736
import java.sql.SQLException;
38-
import java.util.concurrent.ExecutionException;
3937
import org.junit.AfterClass;
4038
import org.junit.Before;
4139
import org.junit.BeforeClass;
@@ -90,7 +88,7 @@ protected static Database getDatabase() {
9088
}
9189

9290
@BeforeClass
93-
public static void setup() throws IOException, InterruptedException, ExecutionException {
91+
public static void setup() {
9492
database = env.getTestHelper().createTestDatabase();
9593
}
9694

src/test/java/com/google/cloud/spanner/jdbc/it/ITJdbcConnectTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
import com.google.auth.oauth2.AccessToken;
2222
import com.google.auth.oauth2.GoogleCredentials;
23-
import com.google.cloud.spanner.IntegrationTest;
23+
import com.google.cloud.spanner.ParallelIntegrationTest;
2424
import com.google.cloud.spanner.SpannerOptions;
2525
import com.google.cloud.spanner.jdbc.CloudSpannerJdbcConnection;
2626
import com.google.cloud.spanner.jdbc.ITAbstractJdbcTest;
@@ -49,7 +49,7 @@
4949
*
5050
* This class tests all three possibilities.
5151
*/
52-
@Category(IntegrationTest.class)
52+
@Category(ParallelIntegrationTest.class)
5353
@RunWith(JUnit4.class)
5454
public class ITJdbcConnectTest extends ITAbstractJdbcTest {
5555

src/test/java/com/google/cloud/spanner/jdbc/it/ITJdbcDatabaseMetaDataTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
import static org.hamcrest.MatcherAssert.assertThat;
2424
import static org.junit.Assume.assumeFalse;
2525

26-
import com.google.cloud.spanner.IntegrationTest;
26+
import com.google.cloud.spanner.ParallelIntegrationTest;
2727
import com.google.cloud.spanner.jdbc.ITAbstractJdbcTest;
2828
import com.google.cloud.spanner.testing.EmulatorSpannerHelper;
2929
import java.sql.Connection;
@@ -40,7 +40,7 @@
4040
import org.junit.runners.JUnit4;
4141

4242
/** Integration tests for {@link DatabaseMetaData} implementation for Spanner. */
43-
@Category(IntegrationTest.class)
43+
@Category(ParallelIntegrationTest.class)
4444
@RunWith(JUnit4.class)
4545
public class ITJdbcDatabaseMetaDataTest extends ITAbstractJdbcTest {
4646
private static final String DEFAULT_CATALOG = "";

src/test/java/com/google/cloud/spanner/jdbc/it/ITJdbcDdlTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
package com.google.cloud.spanner.jdbc.it;
1818

19-
import com.google.cloud.spanner.IntegrationTest;
19+
import com.google.cloud.spanner.ParallelIntegrationTest;
2020
import com.google.cloud.spanner.connection.SqlScriptVerifier;
2121
import com.google.cloud.spanner.jdbc.ITAbstractJdbcTest;
2222
import com.google.cloud.spanner.jdbc.JdbcSqlScriptVerifier;
@@ -26,7 +26,7 @@
2626
import org.junit.runners.JUnit4;
2727

2828
/** Execute DDL statements using JDBC. */
29-
@Category(IntegrationTest.class)
29+
@Category(ParallelIntegrationTest.class)
3030
@RunWith(JUnit4.class)
3131
public class ITJdbcDdlTest extends ITAbstractJdbcTest {
3232

src/test/java/com/google/cloud/spanner/jdbc/it/ITJdbcPreparedStatementTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
import static org.junit.Assume.assumeFalse;
2828

2929
import com.google.cloud.ByteArray;
30-
import com.google.cloud.spanner.IntegrationTest;
30+
import com.google.cloud.spanner.ParallelIntegrationTest;
3131
import com.google.cloud.spanner.Value;
3232
import com.google.cloud.spanner.jdbc.ITAbstractJdbcTest;
3333
import com.google.cloud.spanner.jdbc.JsonType;
@@ -64,7 +64,7 @@
6464
import org.junit.runners.MethodSorters;
6565

6666
/** Integration tests for JDBC {@link PreparedStatement}s. */
67-
@Category(IntegrationTest.class)
67+
@Category(ParallelIntegrationTest.class)
6868
@RunWith(JUnit4.class)
6969
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
7070
public class ITJdbcPreparedStatementTest extends ITAbstractJdbcTest {

src/test/java/com/google/cloud/spanner/jdbc/it/ITJdbcQueryOptionsTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
import static org.junit.Assert.fail;
2424
import static org.junit.Assume.assumeFalse;
2525

26-
import com.google.cloud.spanner.IntegrationTest;
26+
import com.google.cloud.spanner.ParallelIntegrationTest;
2727
import com.google.cloud.spanner.SpannerOptions;
2828
import com.google.cloud.spanner.connection.SpannerPool;
2929
import com.google.cloud.spanner.jdbc.ITAbstractJdbcTest;
@@ -53,7 +53,7 @@
5353
*
5454
* This class tests all three possibilities.
5555
*/
56-
@Category(IntegrationTest.class)
56+
@Category(ParallelIntegrationTest.class)
5757
@RunWith(JUnit4.class)
5858
public class ITJdbcQueryOptionsTest extends ITAbstractJdbcTest {
5959
private String connectionUriSuffix;

src/test/java/com/google/cloud/spanner/jdbc/it/ITJdbcReadOnlyTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616

1717
package com.google.cloud.spanner.jdbc.it;
1818

19-
import com.google.cloud.spanner.IntegrationTest;
2019
import com.google.cloud.spanner.Mutation;
20+
import com.google.cloud.spanner.ParallelIntegrationTest;
2121
import com.google.cloud.spanner.connection.ConnectionOptions;
2222
import com.google.cloud.spanner.connection.SqlScriptVerifier;
2323
import com.google.cloud.spanner.jdbc.CloudSpannerJdbcConnection;
@@ -37,7 +37,7 @@
3737
import org.junit.runners.JUnit4;
3838

3939
/** This test class runs a SQL script for testing a connection in read-only mode. */
40-
@Category(IntegrationTest.class)
40+
@Category(ParallelIntegrationTest.class)
4141
@RunWith(JUnit4.class)
4242
public class ITJdbcReadOnlyTest extends ITAbstractJdbcTest {
4343
private static final long TEST_ROWS_COUNT = 1000L;

src/test/java/com/google/cloud/spanner/jdbc/it/ITJdbcReadWriteAutocommitTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
import static org.hamcrest.CoreMatchers.notNullValue;
2121
import static org.hamcrest.MatcherAssert.assertThat;
2222

23-
import com.google.cloud.spanner.IntegrationTest;
2423
import com.google.cloud.spanner.Mutation;
24+
import com.google.cloud.spanner.ParallelIntegrationTest;
2525
import com.google.cloud.spanner.connection.SqlScriptVerifier;
2626
import com.google.cloud.spanner.jdbc.CloudSpannerJdbcConnection;
2727
import com.google.cloud.spanner.jdbc.ITAbstractJdbcTest;
@@ -33,7 +33,7 @@
3333
import org.junit.runners.JUnit4;
3434
import org.junit.runners.MethodSorters;
3535

36-
@Category(IntegrationTest.class)
36+
@Category(ParallelIntegrationTest.class)
3737
@RunWith(JUnit4.class)
3838
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
3939
public class ITJdbcReadWriteAutocommitTest extends ITAbstractJdbcTest {

src/test/java/com/google/cloud/spanner/jdbc/it/ITJdbcSimpleStatementsTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
import static org.junit.Assert.assertTrue;
2424
import static org.junit.Assert.fail;
2525

26-
import com.google.cloud.spanner.IntegrationTest;
26+
import com.google.cloud.spanner.ParallelIntegrationTest;
2727
import com.google.cloud.spanner.Struct;
2828
import com.google.cloud.spanner.Value;
2929
import com.google.cloud.spanner.jdbc.ITAbstractJdbcTest;
@@ -41,7 +41,7 @@
4141

4242
/** Test executing simple statements through JDBC. */
4343
@RunWith(JUnit4.class)
44-
@Category(IntegrationTest.class)
44+
@Category(ParallelIntegrationTest.class)
4545
public class ITJdbcSimpleStatementsTest extends ITAbstractJdbcTest {
4646
@Test
4747
public void testSelect1() throws SQLException {

0 commit comments

Comments
 (0)