Skip to main content

test-with-postgres

Run unit tests that require PostgreSQL. Use this skill when the user wants to run tests with PostgreSQL database backend. Automatically handles checking for and configuring a PostgreSQL Docker container.

Informações da origem

Repositório
storj/storj
Última atividade na origem
18 de maio de 2026 às 13:17
Idioma detectado do SKILL.md
inglês
Estrelas
3.282
Forks
427

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
test-with-postgres
description
Run unit tests that require PostgreSQL. Use this skill when the user wants to run tests with PostgreSQL database backend. Automatically handles checking for and configuring a PostgreSQL Docker container.
allowed-tools
Bash(docker *), Bash(go *)
# Run Unit Tests with PostgreSQL You are helping run unit tests that require PostgreSQL. ## Instructions ### Starting PostgreSQL PostgreSQL must be running before tests can execute. Use Docker to start a PostgreSQL instance: ```bash # Check if postgres container is already running docker ps --filter name=storj_unit_tests_postgres --format '{{.Names}}' # If not running, start it: docker run --rm -d -p 5433:5432 --name storj_unit_tests_postgres -e POSTGRES_PASSWORD=tmppass postgres:17 # Wait for postgres to be ready (retry until successful) until docker exec storj_unit_tests_postgres psql -h localhost -U postgres -d postgres -c "select 1" > /dev/null 2>&1; do echo "Waiting for postgres server..." sleep 1 done # Create test database docker exec storj_unit_tests_postgres psql -h localhost -U postgres -c "create database teststorj;" ``` Alternatively, run `testsuite/postgres-dev.sh` which handles all setup automatically. ### Running Tests 1. **If test name is provided in arguments**: - Find the package containing the test using Grep - Run the test with PostgreSQL configured 2. **If only package path is provided**: - Run all tests in that package with PostgreSQL configured 3. **Command format**: ```bash go test -v ./package/path -run TestName -postgres-test-db 'postgres://postgres:tmppass@localhost:5433/teststorj?sslmode=disable' ``` 4. **Report test results**: - Show whether tests passed or failed - List all subtests that ran - If tests failed, offer to help investigate the failures 5. **Stop the Docker container after tests complete**: ```bash docker rm -f storj_unit_tests_postgres ``` ## Common test paths Some common test paths in the Storj codebase: - `./satellite/metabase` - Metabase tests - `./satellite/metainfo` - Metainfo API tests - `./satellite/satellitedb` - Database tests ## Example Usage ```bash # Run a specific test go test -v ./satellite/metainfo -run TestEndpoint_Object_No_StorageNodes -postgres-test-db 'postgres://postgres:tmppass@localhost:5433/teststorj?sslmode=disable' # Run all tests in a package go test -v ./satellite/metabase -postgres-test-db 'postgres://postgres:tmppass@localhost:5433/teststorj?sslmode=disable' # Run tests with timeout go test -v -timeout 10m ./satellite/metabase -run TestLoop -postgres-test-db 'postgres://postgres:tmppass@localhost:5433/teststorj?sslmode=disable' ``` ## Cleanup To stop the PostgreSQL container when done: ```bash docker rm -f storj_unit_tests_postgres ``` ## Notes - The container uses port 5433 to avoid conflicts with any local PostgreSQL installation on the default port 5432 - Tests automatically create isolated test databases for each test run - Use `STORJ_TEST_POSTGRES='omit'` to skip PostgreSQL tests
Ver no GitHub