Weblate sınama paketi ve kesintisiz bütünleştirme¶
Sınama paketleri geçerli kodun çoğu için bulunabilir. Herhangi bir yeni özellik için sınama çalışmaları ekleyerek kapsamı artırın ve çalıştığını doğrulayın.
Kesintisiz bütünleştirme¶
Weblate, kod kalitesini sağlamak için sınamaları yürütmek, belgeleri oluşturmak, kodları temizlemek ve diğer görevler için GitHub Actions kullanır.
Codecov yürütülen sınamalardan kod kapsamı bilgilerini toplar.
Farklı yönleri doğrulayacak birkaç görev vardır:
Pytest <https://pytest.org/>`_ kullanarak birim ve işlevsel testler.
Sphinx <https://www.sphinx-doc.org/>`_ kullanarak belge oluşturma ve dış bağlantılar.
Ruff <https://docs.astral.sh/ruff/>`_ ve pylint kullanarak kod temizleme ve kalite güvencesi.
CodeQL <https://codeql.github.com/>`_ kullanarak kod güvenliği taraması.
Argos kesintisiz bütünleştirme ile görsel değişiklik testi.
prek kullanarak kod biçimlendirmesi, pre-commit altyapısının daha hızlı bir üçüncü taraf yeniden uygulanması.
Desteklenen tüm sürümlerden aktarım sınaması
Kurulum doğrulaması (oluşturulan dist dosyalarının hiçbir şeyi kaçırmamasını ve sınanabilmesini sağlar)
Kesintisiz bütünleştirme yapılandırması .github/workflows klasöründe bulunur ve yoğun olarak ci klasöründeki yardımcı betikleri kullanır. Betikler el ile de yürütülebilir, ancak çoğunlukla kullanılacak Django ayarları dosyasını ve veri tabanı bağlantısını denetleyen birkaç ortam değişkeni gereklidir. Bunun örnek tanımını scripts/test-database.sh içinde bulabilirsiniz:
# 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 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
Basit yürütme şöyle görünebilir:
source scripts/test-database.sh
./ci/run-migrate
./ci/run-test
./ci/run-docs
Weblate kurulumunu yerel olarak sınamak¶
Before running tests, please ensure development dependencies are installed:
uv sync --all-extras --dev
pytest kullanarak sınama¶
Sınamaları başlatmadan önce, bazı sınamalar için var olmaları gerektiğinden durağan dosyaları toplamalısınız:
DJANGO_SETTINGS_MODULE=weblate.settings_test uv run ./manage.py collectstatic --noinput
You can use pytest to run the test suite locally:
uv run pytest
Tekil bir sınama dosyasını çalıştırmak:
uv run pytest weblate/utils/tests/test_search.py
İpucu
Sınamalar için kullanılacak bir veri tabanı (PostgreSQL) sunucusuna gerek duyacaksınız. Django varsayılan olarak, test_ ön eki olan sınamaları çalıştırmak için ayrı bir veri tabanı oluşturur. Bu nedenle ayarlarınızın weblate kullanacak şekilde yapılandırılması durumunda, sınamalar test_weblate veri tabanını kullanır. Kurulum yönergesi için Weblate için veri tabanı kurulumu bölümüne bakabilirsiniz.
weblate/settings_test.py kesintisiz bütünleştirme ortamında da kullanılır (ayrıntılı bilgi almak için: Kesintisiz bütünleştirme) ve ortam değişkenleri kullanılarak ayarlanabilir:
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
İpucu
Sınamalar geliştirici docker kapsayıcısı içinde de yürütülebilir. Ayrıntılı bilgi almak için: Weblate platformunu Docker üzerinde yerel olarak çalıştırma.
Ayrıca bakınız
Django sınamalarını çalıştırmak ve yazmak ile ilgili bilgi almak için Testing in Django bölümüne bakabilirsiniz.
Weblate modüllerini yerel olarak sınamak¶
The tests are executed using pytest. First you need to install development dependencies:
uv sync --all-extras --dev
Daha sonra depo checkout sayfasında sınama paketini yürütebilirsiniz:
uv run pytest
Depoları sınamak¶
Weblate sınama paketindeki sınamaların çoğu sınama deposunu kullanır. Sınama paketi deposu https://github.com/WeblateOrg/test adresinde bulunur. Daha sonra scripts/pack-test-data.sh betiği, desteklenen sürüm denetimi sistemlerinin her biri için bir depo içeren bir tarball oluşturmak için kullanılır. Bunlar Weblate deposunda weblate/trans/tests/data/test-base-repo.git.tar, weblate/trans/tests/data/test-base-repo.hg.tar ve weblate/trans/tests/data/test-base-repo.svn.tar olarak saklanır.
https://github.com/WeblateOrg/test deposu yayınlandığı zaman etiketlenir, bu da yayınlama etiketlerinin yayınlanma zamanında kullanılan sınama verilerine erişmek için kullanılabilmesini sağlar. Betik olabildiğince yinelenebilir tarball paketleri oluşturmaya çalışır.