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.sh:

# Copyright © Michal Čihař <michal@weblate.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later

# Simple way to configure test database from environment

# shellcheck shell=sh

# 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.sh
./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:

# Copyright © Michal Čihař <michal@weblate.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later

# Simple way to configure test database from environment

# shellcheck shell=sh

# 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.