Skip to the content.

Developer Guide

Versioning

The version in the following places must be identical

Testing

Run unit tests only:

go test ./... -short

Run unit tests and integration tests:

For running the integrations tests you need Docker and Java installed.

go test ./...

To force tests to run instead of using cached results, add -count=1:

go test -count=1 ./...

Selecting the Exasol Version for Integration Tests

The default database version is defined by integrationTesting.defaultExasolDbVersion.

You can override this version by setting environment variable DB_VERSION, e.g.

export DB_VERSION=8.29.13

Hint: Download the Docker image for Exasol docker-db using pure docker commands, e.g.

docker pull exasol/docker-db:2026.1.1

Benefits:

Reusing the Docker Container

The integration tests use exasol-test-setup-abstraction-server and thus indirectly exasol-testcontainers.

To speedup tests during development you need to enable reusing of test containers by creating file ~/.testcontainers.properties with the following content:

testcontainers.reuse.enable=true

Run Selected Tests

Run all tests in a specific package:

go test github.com/exasol/exasol-driver-go/pkg/connection/wsconn -p 1 -v -count 1

Argument -p is short for -parallel and limits the number of packages to test in parallel.

Run a single test within a suite:

go test -count 1 -p 1 -v \
   -run TestIntegrationSuite/TestSimpleParquetImportStatement \
   github.com/exasol/exasol-driver-go/itest

Parquet integration-test fixture

Integration tests generate ../testData/data.parquet containing the same three rows as testData/data.csv — (11, "test1"), (12, "test2"), (13, "test3") — as an INT64 column named a and a UTF-8 string column named b. The test-only helper uses github.com/parquet-go/parquet-go; the driver itself never parses Parquet.

The fixture is generated by generateExampleParquetFile in itest/integration_test.go and removed after each test.