blob: 65871ab58ef327a4aafd13b570dc0079ff03e971 [file] [view] [edit]
# Testing
Package storage has unit, emulated integration tests, and integration tests
against the real GCS service.
## Setup
Assume that you're running from a directory which contains the `google-cloud-go`
git repository.
```bash
git clone https://github.com/googleapis/google-cloud-go
git clone https://github.com/googleapis/storage-testbench # emulator
```
## Running unit tests
```bash
go test ./google-cloud-go/storage -short
```
## Running emulated integration tests
See
https://github.com/googleapis/storage-testbench?tab=readme-ov-file#how-to-use-this-testbench
for testbench setup instructions. After following those instructions, you should
have an emulator running an HTTP server on port 9000 and a gRPC server on port
8888.
```bash
STORAGE_EMULATOR_HOST_GRPC="localhost:8888" STORAGE_EMULATOR_HOST="http://localhost:9000" go test ./google-cloud-go/storage -short -run="^Test(RetryConformance|.*Emulated)"
```
If you don't specify the `-run` filter, this will also run unit tests.
## Running live service integration tests
See the [general setup instructions](../CONTRIBUTING.md#local-setup) for more
details. The GCS integration tests require:
- A project configured such that all bucket types can be created (e.g. with and
without UBLA, with and without HNS). A dedicated project which only stores
test data is recommended.
- A JSON key file for a service account with most GCS privileges in that
project.
- A VM in that project.
Run with:
```bash
GCLOUD_TESTS_GOLANG_PROJECT_ID="${PROJECT_ID?}" GCLOUD_TESTS_GOLANG_KEY="${KEYFILE?}" \
go test ./google-cloud-go/storage -run="^Test.*Integration"
```