Configuração por ambiente - raialmeida/mindqa-db-commons GitHub Wiki

Configuração por ambiente

O arquivo padrão da biblioteca é database.properties, localizado na raiz do classpath (normalmente src/test/resources/database.properties no projeto de automação). Quando nenhum seletor é informado, esse arquivo é carregado automaticamente, sem necessidade de -D.

Também é possível usar database-qa.properties, database-hml.properties ou qualquer outro arquivo selecionado explicitamente com -Ddb.config ou DB_CONFIG. Outra opção é utilizar somente variáveis de ambiente. Variáveis de ambiente prevalecem sobre os valores do arquivo carregado.

As conexões usam os prefixos POSTGRESQL_, SQLSERVER_, MYSQL_ e ORACLE_. Para vários destinos, use DB_CONNECTIONS_<NOME>_* e selecione com DatabaseService.connection("nome").

Com apenas um prefixo configurado, a conexão é selecionada automaticamente. Com dois ou mais prefixos ou conexões nomeadas, sem uma configuração simples DB_*, defina DB_DEFAULT_CONNECTION para usar DatabaseService.select(...), DatabaseService.execute(...) ou DatabaseService.database(...). O padrão pode ser omitido quando o código sempre seleciona o destino com DatabaseService.connection("nome").

Consulte Referência de configuração para as chaves, portas, URLs e opções dos drivers.

A ordem de seleção é:

  1. -Ddb.config para um arquivo específico;
  2. DB_CONFIG para um arquivo específico;
  3. -Ddb.env para selecionar database-<ambiente>.properties;
  4. DB_ENV para selecionar database-<ambiente>.properties;
  5. database.properties no classpath quando nenhum seletor está preenchido;
  6. somente variáveis de ambiente, caso o arquivo padrão não exista.

Seletores vazios são ignorados. Um arquivo explicitamente selecionado precisa existir; sua ausência não faz a biblioteca tentar o próximo item.

Exemplos:

# Carrega automaticamente src/test/resources/database.properties
mvn test

# Seleciona um ambiente pelo nome
mvn test -Ddb.env=qa

# Seleciona um arquivo específico
mvn test -Ddb.config=configuracao/hml.properties

Segurança do SQL Server e propriedades do driver

encrypt e trustServerCertificate são configuráveis por conexão e usam false como padrão. encrypt aceita true, false ou strict; trustServerCertificate aceita true ou false:

SQLSERVER_ENCRYPT=true
SQLSERVER_TRUST_SERVER_CERTIFICATE=false

Para uma conexão nomeada, aplique o namespace dela:

DB_CONNECTIONS_LEGADO_ENCRYPT=true
DB_CONNECTIONS_LEGADO_TRUST_SERVER_CERTIFICATE=false

As mesmas chaves podem ser exportadas como variáveis de ambiente:

export SQLSERVER_ENCRYPT=true
export SQLSERVER_TRUST_SERVER_CERTIFICATE=false
export SQLSERVER_DRIVER_PROPERTIES='applicationName=qa-automation&authenticationScheme=javaKerberos'

Opções adicionais podem ser enviadas diretamente ao driver com DRIVER_PROPERTIES:

POSTGRESQL_DRIVER_PROPERTIES=ApplicationName=qa-automation&sslmode=require
DB_CONNECTIONS_LEGADO_DRIVER_PROPERTIES=applicationName=qa-legado

O formato é chave=valor&outra=valor. Use codificação percentual para caracteres reservados, como em applicationName=qa%20automation. Credenciais, host, porta, base, timeouts, encrypt e trustServerCertificate devem usar suas chaves próprias e não podem ser sobrescritos por DRIVER_PROPERTIES.

⚠️ **GitHub.com Fallback** ⚠️