Skip to content
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

Merged
merged 1 commit into from Jan 19, 2022

Conversation

mpeddada1
Copy link
Contributor

@mpeddada1 mpeddada1 commented Jan 13, 2022

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 with exclude, which allows the the maven-surefire-plugin configuration for the native profile to take precedence when mvn test -P native is called. Manual testing with mvn test results in only unit tests being run, therefore showing no change in current behavior for standard Java.

  • Make sure to open an issue as a bug/issue before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea
  • Ensure the tests and linter pass
  • Code coverage does not decrease (if any source code was changed)
  • Appropriate docs were updated (if necessary)

Fixes #719 ☕️

@mpeddada1 mpeddada1 requested review from a team as code owners January 13, 2022 23:11
@product-auto-label product-auto-label bot added the api: spanner Issues related to the googleapis/java-spanner-jdbc API. label Jan 13, 2022
<excludedGroups>com.google.cloud.spanner.IntegrationTest</excludedGroups>
<exclude>com.google.cloud.spanner.IntegrationTest</exclude>
Copy link
Member

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?

Copy link
Contributor Author

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.

Copy link
Member

@suztomo suztomo Jan 18, 2022

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.

Screen Shot 2022-01-18 at 2 47 28 PM

@mpeddada1 With this change in this PR, does mvn test skip the tests marked with @Category(ParallelIntegrationTest.class), such as ITJdbcSimpleStatementsTest and ITJdbcReadOnlyTest?

Copy link
Contributor Author

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.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for confirmation.

@mpeddada1
Copy link
Contributor Author

Thank you for the review @Neenu1995 and @suztomo!

@mpeddada1 mpeddada1 merged commit 7f13c88 into main Jan 19, 2022
@mpeddada1 mpeddada1 deleted the native-run-it branch January 19, 2022 18:00
gcf-merge-on-green bot pushed a commit that referenced this pull request Feb 3, 2022
🤖 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).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api: spanner Issues related to the googleapis/java-spanner-jdbc API.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Integration tests not running for native image testing
3 participants