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

Migrate tests depending on Boltkit to use Docker #1256

Merged
merged 1 commit into from
Jul 4, 2022

Conversation

injectives
Copy link
Contributor

@injectives injectives commented Jun 28, 2022

Boltkit has been deprecated and requires additional setup on the host to run tests. This update migrates tests depending on Boltkit to use Docker that is needed for Testkit testing as well.

@injectives injectives force-pushed the feature/testcontainers branch 6 times, most recently from 176dd3e to e9431e8 Compare July 3, 2022 11:02
@injectives injectives changed the title Testing build Migrate tests depending on Boltkit to use Docker Jul 3, 2022
Boltkit has been deprecated and requires additional setup on the host to run tests. This update migrates tests depending on Boltkit to use Docker that is needed for Testkit testing as well.
Copy link
Contributor

@michael-simons michael-simons left a comment

Choose a reason for hiding this comment

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

I tried running the full suite and it seems to work. org.neo4j.driver.stress.CausalClusteringStressIT however takes an awful lot of time.

In general, I am a big fan of getting rid of Boltkit, and having everything orchestrated from Maven. However, I was wondering why those tests are needed at all and wether they can't be orchestrated from Testkit rather than from the driver site. @robsdedude reminded me that Testkit can bring up concrete instances, too. And I am asking this as a big fan of Testcontainers/TestcontainersNeo4j.

+Edit+

I read this

The general plan is to migrate integration tests to Testkit, but there are many of them and it would take some time. In addition, not all manipulations are currently supported in Testkit.

And my question still applies: Do we need the manipulations from Testkits side or can't we just rely on getting the correct containers?

README.md Show resolved Hide resolved
@injectives
Copy link
Contributor Author

I tried running the full suite and it seems to work. org.neo4j.driver.stress.CausalClusteringStressIT however takes an awful lot of time.

Yes, CausalClusteringStressIT takes time. This update does not change this. We can look into putting it on a separate profile if we find this is necessary.

@injectives
Copy link
Contributor Author

In general, I am a big fan of getting rid of Boltkit, and having everything orchestrated from Maven. However, I was wondering why those tests are needed at all and wether they can't be orchestrated from Testkit rather than from the driver site. @robsdedude reminded me that Testkit can bring up concrete instances, too. And I am asking this as a big fan of Testcontainers/TestcontainersNeo4j.

I think the tests are needed at least until we go over them and confirm that such cases are covered by Testkit. Those that are not covered will need to be migrated to Testkit and the ones that are covered will be decommissioned. During migration we usually determine if test case is better off tested with stub server or real one in Testkit.

This update simply lets us move away from deprecated Boltkit until we get to the steps described above.

@injectives
Copy link
Contributor Author

And my question still applies: Do we need the manipulations from Testkits side or can't we just rely on getting the correct containers?

As far as I remember, Testkit does not currently support server state manipulations. For instance, stopping, starting, updating configuration or swapping ssl certificates. Some existing integration tests manipulate server state. Whether it makes sense to bring support to Testkit OR change test logic should be determined during migration to Testkit.

@injectives injectives merged commit 8a436c1 into neo4j:5.0 Jul 4, 2022
@injectives injectives deleted the feature/testcontainers branch July 4, 2022 20:08
injectives added a commit to injectives/neo4j-java-driver that referenced this pull request Nov 22, 2022
Boltkit has been deprecated and requires additional setup on the host to run tests. This update migrates tests depending on Boltkit to use Docker that is needed for Testkit testing as well.
injectives added a commit that referenced this pull request Nov 23, 2022
* Migrate RoutingExamplesIT to Testcontainers (#1215)

* Migrate java-driver-rx-tck (#1224)

* Migrate java-driver-rx-tck

This update migrates verification tests from `java-driver-rx-tck` to this project.

* Update surefire and failsafe to 3.0.0-M6

* Migrate tests depending on Boltkit to use Docker (#1256)

Boltkit has been deprecated and requires additional setup on the host to run tests. This update migrates tests depending on Boltkit to use Docker that is needed for Testkit testing as well.

* Skip tests incompatible with 5.x server
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants