Weblate tesztcsomag és folyamatos integráció¶
A jelenlegi kód nagy részéhez léteznek tesztcsomagok. Növelje a lefedettséget új funkciókhoz tartozó tesztesetek hozzáadásával, és ellenőrizze azok működését.
Folyamatos integráció¶
Weblate relies on GitHub Actions to run tests, build documentation, code linting, and other tasks to ensure code quality.
Codecov collects the code coverage information from the tests that were run.
Több CI-feladat (job) fut, amelyek különböző szempontokat ellenőriznek:
Egységtesztek
Dokumentáció építése és külső hivatkozások ellenőrzése
Migrációs tesztelés minden támogatott verzióról
Kódellenőrzés (lintelés)
Beállítás ellenőrzése (Ellenőrzi, hogy a generált terjesztési fájlok (dist fájlok) teljesek-e, és tesztelhetők-e.)
A folyamatos integrációhoz (CI) tartozó konfiguráció a .github/workflows könyvtárban található. Ez nagymértékben támaszkodik a ci könyvtárban elhelyezett segédszkriptekre. A szkriptek manuálisan is futtathatók, de több környezeti változót igényelnek — főként a használandó Django beállításfájlt, valamint az adatbázis-kapcsolatot kell megadni. Erre példa található a scripts/test-database.sh fájlban:
# 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
Egyszerű futtatás például így nézhet ki:
source scripts/test-database.sh
./ci/run-migrate
./ci/run-test
./ci/run-docs
Weblate helyi tesztelése¶
A tesztek futtatása előtt győződjön meg róla, hogy a tesztfüggőségek telepítve vannak. Ezt megteheti a következő paranccsal: pip install -e .[test].
Tesztelés pytest használatával¶
A tesztek futtatása előtt szükséges az statikus fájlok összegyűjtése is, mivel egyes tesztek ezek meglétére támaszkodnak:
DJANGO_SETTINGS_MODULE=weblate.settings_test ./manage.py collectstatic
A teljes tesztcsomag helyi futtatásához használja a pytest eszközt:
pytest weblate
Egy adott tesztfájl futtatása:
pytest weblate/utils/tests/test_search.py
Tipp
A tesztekhez szüksége lesz egy PostgreSQL adatbázis szerverre. Alapértelmezés szerint a Django egy külön adatbázist hoz létre a tesztekhez, amelynek neve test_ előtaggal kezdődik. Például ha a beállítások szerint az adatbázis neve weblate, akkor a tesztek a test_weblate nevű adatbázist fogják használni. Lásd a Adatbázis beállítása Weblate-hez részt a beállítás részleteihez.
A weblate/settings_test.py fájlt a CI környezet is használja (lásd: Folyamatos integráció), és környezeti változókon keresztül testreszabható:
export CI_DATABASE=postgresql
export CI_DB_USER=weblate
export CI_DB_PASSWORD=weblate
export CI_DB_HOST=127.0.0.1
export CI_DB_PORT=60000
export DJANGO_SETTINGS_MODULE=weblate.settings_test
Tipp
A tesztek a fejlesztői Docker-konténeren belül is futtathatók — lásd: Weblate futtatása helyileg Dockerben.
Lásd még
További információk Django tesztek írásáról és futtatásáról: Testing in Django.
Weblate-modulok helyi tesztelése¶
A teszteket a py.test eszköz végzi. Először telepíteni kell a tesztfüggőségeket:
uv pip install -e '.[dev]'
Ezután a letöltött tárolón belül lefuttathatja a tesztcsomagot:
py.test