New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(java): include integration tests for native image testing #720
Conversation
7fe2b0e
to
f2548f8
Compare
<excludedGroups>com.google.cloud.spanner.IntegrationTest</excludedGroups> | ||
<exclude>com.google.cloud.spanner.IntegrationTest</exclude> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
https://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#excludedGroups
(TestNG/JUnit47 provider with JUnit4.8+ only and JUnit5+ provider since 2.22.0) Excluded groups/categories/tags. Any methods/classes/etc with one of the groups/categories/tags specified in this list will specifically not be run.
Was that wrong usage of excludedGroups
before this PR?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ideally, we want to run integration tests and unit tests (ending in *ClientTest
) with the native
profile. For this purpose, we tend to ignore any exclusions that take place in other maven-surefire-plugin configurations within the java-shared-config pom or other child poms: https://github.com/googleapis/java-shared-config/blob/ac44ba11d2da2f649670867c520f90253a8a41ff/pom.xml#L807, so that we can explicitly include these tests. However, with the use of excludedGroups
in java-spanner-jdbc, this overriding of the exclusions gets ignored, therefore causing no integration tests to run in native
mode. Changing this to exclude
fixes this issue.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Was that wrong usage of excludedGroups before this PR?
it seems correct usage to skip the integration test marked with @Category(ParallelIntegrationTest.class)
in this repository.
@mpeddada1 With this change in this PR, does mvn test
skip the tests marked with @Category(ParallelIntegrationTest.class)
, such as ITJdbcSimpleStatementsTest
and ITJdbcReadOnlyTest
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good question. Just ran mvn test
with this change and can confirm that tests annotated with @Category(ParallelIntegrationTest.class)
are skipped. Only unit tests are executed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for confirmation.
Thank you for the review @Neenu1995 and @suztomo! |
🤖 I have created a release *beep* *boop* --- ### [2.5.9](v2.5.8...v2.5.9) (2022-02-03) ### Bug Fixes * **java:** replace excludedGroup with exclude ([#720](#720)) ([7f13c88](7f13c88)) ### Dependencies * **java:** update actions/github-script action to v5 ([#1339](#1339)) ([#725](#725)) ([4f96ec1](4f96ec1)) * update actions/github-script action to v5 ([#724](#724)) ([5c1d6ff](5c1d6ff)) * update dependency com.google.cloud:google-cloud-shared-dependencies to v2.7.0 ([#728](#728)) ([b0a32d8](b0a32d8)) * update opencensus.version to v0.31.0 ([#727](#727)) ([fce0770](fce0770)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
Some background:
We want to run integration tests and unit tests (ending in *ClientTest) with the native profile. For this purpose, we want to ignore any exclusions that take place in other maven-surefire-plugin configurations within the java-shared-config pom or other child poms so that we can explicitly include these tests. However, using
excludedGroups
in java-spanner-jdbc causes the overriding of the exclusion to be ignored. This results in integration tests being skipped in native mode which leads to native-image testing to fail with the message:Test configuration file wasn't found. Make sure that test execution wasn't skipped.
This change replaces the use of
excludedGroups
withexclude
, which allows the the maven-surefire-plugin configuration for thenative
profile to take precedence whenmvn test -P native
is called. Manual testing withmvn test
results in only unit tests being run, therefore showing no change in current behavior for standard Java.Fixes #719 ☕️