Conjunto de testes e integração contínua do Weblate
Existem conjuntos de teste para a maior parte do código atual, aumente a cobertura a adicionar casos de teste para qualquer nova funcionalidade e verifique se funciona.
Integração contínua
Os resultados do teste atual encontram-se em GitHub Actions e a cobertura é relatada em Codecov.
Existem vários trabalhos para verificar diferentes aspectos:
Testes de unidade
Construção de documentação e ligações externas
Testes de migração de todas as versões com suporte
Linting de código
Verificação de configuração (garante que os ficheiros dist gerados não percam nada e possam ser testados)
A configuração do CI está no diretório .github/workflows
. Ele usa muito scripts auxiliares armazenados no diretório ci
. Os scripts também podem ser executados manualmente, mas eles requerem várias variáveis de ambiente, principalmente a definir o ficheiro de configurações do Django para usar e conexão com o banco de dados. A definição de exemplo disso está em scripts/test-database
:
# Simple way to configure test database from environment
# Database backend to use postgresql / mysql / mariadb
export CI_DATABASE=${1:-postgresql}
# Database server configuration
export CI_DB_USER=weblate
export CI_DB_PASSWORD=weblate
export CI_DB_HOST=127.0.0.1
# Django settings module to use
export DJANGO_SETTINGS_MODULE=weblate.settings_test
A execução simples pode ser semelhante a:
. scripts/test-database
./ci/run-migrate
./ci/run-test
./ci/run-docs
Teste local
Para executar um conjunto de testes localmente, use:
DJANGO_SETTINGS_MODULE=weblate.settings_test ./manage.py test
Dica
Precisará de um servidor de banco de dados (PostgreSQL) a ser usado para os testes. Por padrão, o Django cria um banco de dados separado para executar testes com o prefixo test_
, então no caso que as suas configurações estarem configuradas para usar weblate
, os testes usarão o banco de dados test_weblate
. Veja Configuração de banco de dados para o Weblate para instruções de configuração.
O weblate/settings_test.py
é usado no ambiente CI também (veja Integração contínua) e pode ser ajustado a usar variáveis de ambiente:
# Simple way to configure test database from environment
# Database backend to use postgresql / mysql / mariadb
export CI_DATABASE=${1:-postgresql}
# Database server configuration
export CI_DB_USER=weblate
export CI_DB_PASSWORD=weblate
export CI_DB_HOST=127.0.0.1
# Django settings module to use
export DJANGO_SETTINGS_MODULE=weblate.settings_test
Antes de executar os testes, deve coletar ficheiros estáticos, pois alguns testes contam com a presença deles:
DJANGO_SETTINGS_MODULE=weblate.settings_test ./manage.py collectstatic
Também pode especificar testes individuais para executar:
DJANGO_SETTINGS_MODULE=weblate.settings_test ./manage.py test weblate.gitexport
Dica
Os testes também podem ser executados dentro de um contentor Docker do programador, consulte Executando Weblate localmente no Docker.
Veja também
Veja :doc:`django:topics/testing/index`para mais informações sobre a execução e escrita de testes para Django.