Google-cloud-java: Datastore Testing: Wiping data between tests?

Created on 29 Sep 2016  Â·  4Comments  Â·  Source: googleapis/google-cloud-java

I'm migrating from the App Engine Datastore API to the Cloud Datastore API (so that I can connect to Datastore from a VPS). A happy thing about the previous API is that it didn't spin up a separate emulator process (5+ seconds) when helper.setUp() is called. With the Cloud Datastore API, it's a different model, so it's a little slower.

I don't want to have to entirely restart my Datastore emulator between tests, but I want a clean slate. Can I either:

  • Still have an in-process datastore implementation to test against, which is fast?
  • Clear the remote emulator datastore, so it doesn't need to be fully restarted?

I've looked through LocalDatastoreHelper, DatastoreOptions and Datastore itself, but I can't find any immediately solutions to my problem.

Note: I can't just @After and delete a set of keys, since some tests involve letting Datastore choose the id of an inserted entity

Most helpful comment

I get a java.lang.NullPointerException when doing:
curl -X POST http://localhost:8081/reset
I'm with version 2.1.0...

│ Cloud Datastore Emulator │ 2.1.0 │ 18.4 MiB │

EDIT: Oh I now realize it works with the flag no-store-on-disk:
gcloud beta emulators datastore start --no-store-on-disk

All 4 comments

Fat-fingered ctrl-enter when entering the title, and posted a blank issue. It's all filled out now :)

@mitchhentges Thanks for the report. You are totally right LocalDatastoreHelper is missing a reset() method. I opened #1293 to fix this.

In the meantime you can reset the emulator yourself by sending a POST request to http://<host>:<port>/reset.

I get a java.lang.NullPointerException when doing:
curl -X POST http://localhost:8081/reset
I'm with version 2.1.0...

│ Cloud Datastore Emulator │ 2.1.0 │ 18.4 MiB │

EDIT: Oh I now realize it works with the flag no-store-on-disk:
gcloud beta emulators datastore start --no-store-on-disk

Still null pointer exception without flag --no-store-on-disk. Why can't this be a more clear error message?

Was this page helpful?
0 / 5 - 0 ratings