Weblate testsuite și integrare continuă
Există seturi de teste pentru cea mai mare parte a codului actual, creșteți acoperirea prin adăugarea de cazuri de testare pentru orice nouă funcționalitate și verificați dacă aceasta funcționează.
Integrare continuă
Rezultatele actuale ale testelor pot fi găsite pe GitHub Actions, iar acoperirea este raportată pe Codecov.
Există mai multe locuri de muncă pentru a verifica diferite aspecte:
Teste unitare
Construirea documentației și legături externe
Testarea migrării de la toate versiunile suportate
Linting de cod
Verificarea configurării (se asigură că fișierele dist generate nu ratează nimic și pot fi testate)
Configurația pentru CI se află în directorul .github/workflows
. Acesta utilizează în mare măsură scripturile de ajutor stocate în directorul ci
. Scripturile pot fi, de asemenea, executate manual, dar necesită mai multe variabile de mediu, care definesc în principal fișierul de setări Django care urmează să fie utilizat și conexiunea la baza de date. Exemplul de definire a acestora se află în scripts/test-database
:
# Copyright © Michal Čihař <michal@weblate.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
# 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
Execuția simplă poate arăta astfel:
. scripts/test-database
./ci/run-migrate
./ci/run-test
./ci/run-docs
Testare locală
Pentru a rula o suită de teste la nivel local, utilizați:
DJANGO_SETTINGS_MODULE=weblate.settings_test ./manage.py test
Sugestie
Veți avea nevoie de un server de baze de date (PostgreSQL) care să fie utilizat pentru teste. În mod implicit, Django creează o bază de date separată pentru a rula testele cu prefixul test_
, astfel încât, în cazul în care setările dvs. sunt configurate pentru a utiliza weblate
, testele vor utiliza baza de date test_weblate
. Consultați Configurarea bazei de date pentru Weblate pentru instrucțiuni de configurare.
Fișierul weblate/settings_test.py
este utilizat și în mediul CI (a se vedea Integrare continuă) și poate fi reglat cu ajutorul variabilelor de mediu:
# Copyright © Michal Čihař <michal@weblate.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
# 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
Înainte de a rula testele, ar trebui să colectați fișierele statice, deoarece unele teste se bazează pe prezența lor:
DJANGO_SETTINGS_MODULE=weblate.settings_test ./manage.py collectstatic
De asemenea, puteți specifica testele individuale care urmează să fie executate:
DJANGO_SETTINGS_MODULE=weblate.settings_test ./manage.py test weblate.gitexport
Sugestie
Testele pot fi, de asemenea, executate în interiorul containerului docker al dezvoltatorului, vezi Rularea Weblate la nivel local în Docker.
Vezi și
Consultați Testing in Django pentru mai multe informații despre rularea și scrierea testelor pentru Django.