வலைபெயர்ப்பு சோதனைகள் மற்றும் தொடர்ச்சியான ஒருங்கிணைப்பு

தற்போதைய குறியீட்டின் பெரும்பகுதிக்கு டெச்சூட்கள் உள்ளன, எந்தவொரு புதிய செயல்பாட்டிற்கும் சோதனை பெட்டிகளைச் சேர்ப்பதன் மூலம் கவரேசை அதிகரிக்கின்றன, மேலும் அது செயல்படுகிறதா என்பதை சரிபார்க்கவும்.

தொடர்ச்சியான ஒருங்கிணைப்பு

குறியீடு தரத்தை உறுதிப்படுத்த சோதனைகளை இயக்க, ஆவணங்கள், குறியீடு லிண்டிங் மற்றும் பிற பணிகளை உருவாக்க வலைபெயர்ப்பு கிட்அப் செயல்கள் ஐ நம்பியுள்ளது.

கோடெகோவ் இயக்கப்பட்ட சோதனைகளிலிருந்து குறியீடு கவரேச் தகவல்களை சேகரிக்கிறது.

வெவ்வேறு அம்சங்களை சரிபார்க்க பல வேலைகள் உள்ளன:

  • pytest ஐப் பயன்படுத்தி அலகு மற்றும் செயல்பாட்டுச் சோதனைகள்.

  • Sphinx ஐப் பயன்படுத்தி ஆவண உருவாக்கம் மற்றும் வெளிப்புற இணைப்புகள்.

  • ruff மற்றும் pylint ஐப் பயன்படுத்தி குறியீடு லைண்டிங் மற்றும் தர பொறுப்பு.

  • CodeQL ஐப் பயன்படுத்தி குறியீடு பாதுகாப்பு ச்கேனிங்.

  • காட்சி மாற்றங்கள் சோதனையானது Argos தொஒ ஐப் பயன்படுத்துகிறது.

  • Code formatting using prek, a faster third-party reimplementation of the pre-commit framework.

  • ஆதரிக்கப்படும் அனைத்து வெளியீடுகளிலிருந்தும் இடம்பெயர்வு சோதனை

  • அமைவு சரிபார்ப்பு (உருவாக்கப்பட்ட மாவட்ட கோப்புகள் எதையும் இழக்காமல் இருப்பதை உறுதி செய்கிறது மற்றும் சோதிக்கப்படலாம்)

CIக்கான உள்ளமைவு .github/workflows கோப்பகத்தில் உள்ளது. இது ci கோப்பகத்தில் சேமிக்கப்பட்ட உதவி ச்கிரிப்ட்களை பெரிதும் பயன்படுத்துகிறது. ச்கிரிப்ட்களை கைமுறையாகவும் செயல்படுத்தலாம், ஆனால் அவற்றுக்குப் பல சூழல் மாறிகள் தேவைப்படுகின்றன, பெரும்பாலும் தரவுத்தள இணைப்பைப் பயன்படுத்தவும் சோதிக்கவும் சாங்கோ அமைப்புக் கோப்பை வரையறுக்கிறது. அதற்கான எடுத்துக்காட்டு விளக்கம் scripts/test-database.sh இல் உள்ளது:

The Selenium screenshot tests in weblate/trans/tests/test_selenium.py serve two purposes. They generate images for visual change testing in CI, and the same images are converted into documentation screenshots by make -C docs update-screenshots. Keep screenshot fixtures close to real rendered pages so CI catches UI regressions. When a screenshot includes volatile runtime data, prefer deterministic server-side test inputs over post-render DOM changes.

# 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

எளிய செயலாக்கம் இப்படி இருக்கும்:

source scripts/test-database.sh
./ci/run-migrate
./ci/run-test
./ci/run-docs

வெப்லேட்டின் உள்ளக சோதனை

சோதனைகளை இயக்கும் முன், வளர்ச்சி சார்புகள் நிறுவப்பட்டுள்ளதா என்பதை உறுதிப்படுத்தவும்:

uv sync --all-extras --dev

Pytest ஐப் பயன்படுத்தி சோதனை

சோதனைகளை இயக்குவதற்கு முன் நீங்கள் நிலையான கோப்புகளை சேகரிக்க வேண்டும், ஏனெனில் சில சோதனைகள் அவை இருப்பதை நம்பியுள்ளன:

DJANGO_SETTINGS_MODULE=weblate.settings_test uv run ./manage.py collectstatic --noinput

சோதனைத் தொகுப்பை உள்நாட்டில் இயக்க நீங்கள் pytest ஐப் பயன்படுத்தலாம்:

uv run pytest

ஒரு தனிப்பட்ட சோதனை கோப்பை இயக்குதல்:

uv run pytest weblate/utils/tests/test_search.py

Hint

சோதனைகளுக்குப் பயன்படுத்த உங்களுக்கு ஒரு தரவுத்தள (PostgreSQL) சேவையகம் தேவைப்படும். இயல்பாக, test_ முன்னொட்டுடன் சோதனைகளை இயக்க, சாங்கோ தனித்தனி தரவுத்தளத்தை உருவாக்குகிறது, எனவே உங்கள் அமைப்புகள் weblate ஐப் பயன்படுத்தும் வகையில் கட்டமைக்கப்பட்டிருந்தால், சோதனைகள் test_weblate தரவுத்தளத்தைப் பயன்படுத்தும். அமைவு வழிமுறைகளுக்கு வலைபெயர்ப்புடுக்கான தரவுத்தள அமைப்பு ஐப் பார்க்கவும்.

weblate/settings_test.py தொஒ சூழலிலும் பயன்படுத்தப்படுகிறது (பார்க்க தொடர்ச்சியான ஒருங்கிணைப்பு) மேலும் சூழல் மாறிகளைப் பயன்படுத்தி சரிசெய்யலாம்:

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

Hint

உருவாக்குபவர் கப்பல்துறை கொள்கலனுக்குள் சோதனைகள் செயல்படுத்தப்படலாம், பார்க்கவும் டாக்கரில் உள்நாட்டில் வலைபெயர்ப்பு இயங்குகிறது.

See also

சாங்கோவிற்கான சோதனைகளை ஓட்டுவது மற்றும் எழுதுவது பற்றிய கூடுதல் தகவலுக்கு Testing in Django ஐப் பார்க்கவும்.

வலைபெயர்ப்பு தொகுதிகளின் உள்ளக சோதனை

சோதனைகள் pytest ஐப் பயன்படுத்தி செயல்படுத்தப்படுகின்றன. முதலில் நீங்கள் வளர்ச்சி சார்புகளை நிறுவ வேண்டும்:

uv sync --all-extras --dev

களஞ்சிய செக்அவுட்டில் சோதனைச்சூட்டை நீங்கள் செயல்படுத்தலாம்:

uv run pytest

சோதனை களஞ்சியம்

வலைபெயர்ப்பு சோதனைத் தொகுப்பில் உள்ள பல சோதனைகள் சோதனைக் களஞ்சியத்தைப் பயன்படுத்துகின்றன. சோதனை தொகுப்பு களஞ்சியம் https://github.com/WeblateOrg/test இல் பராமரிக்கப்படுகிறது. ச்கிரிப்ட் scripts/pack-test-data.sh ஆனது, ஆதரிக்கப்படும் ஒவ்வொரு பதிப்புக் கட்டுப்பாட்டு அமைப்புகளுக்கும் ஒரு களஞ்சியத்துடன் ஒரு நாடாகாப்பகபந்து உருவாக்கப் பயன்படுகிறது. இவை weblate/trans/tests/data/test-base-repo.git.tar, weblate/trans/tests/data/test-base-repo.hg.tar, மற்றும் :weblate/trans/tests/data/test-base-repo.svn.tar.

https://github.com/WeblateOrg/test களஞ்சியம் வெளியீட்டு நேரத்தில் குறியிடப்பட்டுள்ளது, இது வெளியீட்டு நேரத்தில் பயன்படுத்தப்படும் சோதனைத் தரவை அணுக வெளியீட்டு குறிச்சொற்களைப் பயன்படுத்த முடியும் என்பதை உறுதி செய்கிறது. ச்கிரிப்ட் முடிந்தவரை மீண்டும் உருவாக்கக்கூடிய டார்பால்களை உருவாக்க முயற்சிக்கிறது.