Run unit tests that require the Spanner emulator...
You are helping run unit tests that require the Spanner emulator.
The Storj test framework automatically manages the Spanner emulator lifecycle using the run: prefix in the STORJ_TEST_SPANNER environment variable.
To run tests automatically spanner_emulator binary needs to be on PATH. Spanner can be also set for tests using -spanner-test-db flag.
If test name is provided in arguments:
If only package path is provided:
Determine the Spanner connection method:
STORJ_TEST_SPANNER is already set in the environment. If it is, do NOT pass -spanner-test-db — the test framework will pick it up automatically.STORJ_TEST_SPANNER is not set, pass -spanner-test-db 'run:spanner_emulator' to auto-manage the emulator.Command format:
# When STORJ_TEST_SPANNER is already set in the environment:
go test -v ./package/path -run TestName
# When STORJ_TEST_SPANNER is NOT set:
go test -v ./package/path -run TestName -spanner-test-db 'run:spanner_emulator'
The run: prefix tells the test framework to:
Some common test paths in the Storj codebase:
./satellite/metabase - Metabase tests./satellite/metainfo - Metainfo API tests./satellite/satellitedb - Database tests# Run a specific test
go test -v ./satellite/metainfo -run TestEndpoint_Object_No_StorageNodes -spanner-test-db 'run:spanner_emulator'
# Run all tests in a package
go test -v ./satellite/metabase -spanner-test-db 'run:spanner_emulator'
# Run tests with timeout
go test -v -timeout 10m ./satellite/metabase -run TestLoop -spanner-test-db 'run:spanner_emulator'
run: prefix is the recommended approach used in Storj's CI/CD (see Jenkinsfile.verify and Jenkinsfile.public)