Configuração por ambiente - raialmeida/mindqa-db-commons GitHub Wiki
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 é:
-
-Ddb.configpara um arquivo específico; -
DB_CONFIGpara um arquivo específico; -
-Ddb.envpara selecionardatabase-<ambiente>.properties; -
DB_ENVpara selecionardatabase-<ambiente>.properties; -
database.propertiesno classpath quando nenhum seletor está preenchido; - 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.propertiesencrypt 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=falsePara uma conexão nomeada, aplique o namespace dela:
DB_CONNECTIONS_LEGADO_ENCRYPT=true
DB_CONNECTIONS_LEGADO_TRUST_SERVER_CERTIFICATE=falseAs 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-legadoO 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.