எழுதுதல், இயக்கிப் பார்த்தல் மற்றும் சோதனை செய்தல்¶
ஒரு பிழையைச் சரிசெய்வதற்கோ அல்லது ஒரு அம்சத்தைச் செயல்படுத்துவதற்கோ நீங்கள் சில புதிய குறியீட்டை எழுத வேண்டியிருக்கும்.
கோடில் வேலை செய்யத் தொடங்க, நீங்கள் ஒரு வளர்ச்சிச் சூழலை அமைத்துள்ளீர்கள் என்பதையும், ஒரு கிளையில் வேலை செய்கிறீர்கள் என்பதையும் உறுதிப்படுத்திக் கொள்ளுங்கள்.
BeeWare-க்கான குறியீட்டை எழுதுவதற்கான எங்கள் வழிகாட்டுதல்களை விவரிக்கும் ஒரு குறியீட்டு நடை வழிகாட்டி எங்களிடம் உள்ளது.
சோதனை வழி மேம்பாடு¶
உங்கள் குறியீடு நீங்கள் எதிர்பார்ப்பதைச் செய்யும் என்பதை உறுதி செய்வதற்கான ஒரு நல்ல வழி, முதலில் அதைச் சோதிக்க ஒரு சோதனை நிகழ்வை எழுதுவதாகும். இந்தச் சோதனை நிகழ்வு ஆரம்பத்தில் தோல்வியடைய வேண்டும், ஏனெனில் அது சோதிக்கும் குறியீடு இன்னும் உருவாக்கப்படவில்லை. பின்னர், சோதனையில் வெற்றிபெறத் தேவையான குறியீடு மாற்றங்களை நீங்கள் எழுதலாம், மேலும் நீங்கள் எழுதியது நீங்கள் எதிர்பார்க்கும் சிக்கலைத் தீர்க்கிறது என்பதை அறிந்து கொள்ளலாம்.
உங்கள் குறியீட்டை இயக்கவும்¶
உங்கள் குறியீடு எழுதப்பட்டவுடன், அது இயங்குகிறதா என்பதை நீங்கள் உறுதி செய்ய வேண்டும். நீங்கள் எதிர்பார்ப்பதை அது செய்கிறதா என்பதைச் சரிபார்க்க, உங்கள் குறியீட்டை நீங்கள் கைமுறையாக இயக்க வேண்டும். நீங்கள் இன்னும் செய்யவில்லை என்றால், உங்கள் மாற்றங்களுக்காக ஒரு சோதனை நிகழ்வை எழுத வேண்டும்; மேலே குறிப்பிட்டது போல், உங்கள் குறியீடு கருத்துரைக்கப்பட்டிருந்தாலோ அல்லது இல்லை என்றாலோ இந்தச் சோதனை தோல்வியடைய வேண்டும்.
உங்கள் சோதனை நிகழ்வை மற்ற சோதனைகளுடன் சேர்த்து இயக்கக்கூடிய வகையில் சோதனைத் தொகுப்பில் சேர்ப்பீர்கள். அடுத்த கட்டம், சோதனைத் தொகுப்பை இயக்குவதாகும்.
சோதனைகளை இயக்குதல் மற்றும் கவரேஜ்¶
BeeWare சோதனை செயல்முறையை நிர்வகிக்க tox மற்றும் அதன் சொந்த சோதனைத் தொகுப்பிற்கு pytest ஐப் பயன்படுத்துகிறது.
பூர்வீக tox கட்டளை இயங்குவதை உள்ளடக்கியது:
- முன்-அர்ப்பணிப்பு கொக்கிகள்
towncrierவெளியீட்டுக் குறிப்பு சரிபார்ப்பு-
ஆவணப்படுத்தல் லிண்டிங்
-
கிடைக்கும் பைத்தான் பதிப்புகளுக்கான சோதனைத் தொகுப்பு
-
குறியீட்டு உள்ளடக்க அறிக்கை
நீங்கள் ஒரு புல் ரிக்குவஸ்ட்டை சமர்ப்பிக்கும்போது, அடிப்படையில் CI இதுதான் இயக்கும்.
முழுமையான சோதனைத் தொகுப்பை இயக்க, இயக்கி:
(.venv) $ tox
(.venv) $ tox
(.venv) C:\...>tox
முழுமையான சோதனைத் தொகுப்பை இயக்க சிறிது நேரம் ஆகலாம். tox ஐ இணையாக இயக்குவதன் மூலமும், tox p (அல்லது tox run-parallel)-ஐ இயக்குவதன் மூலமும் நீங்கள் இதை கணிசமாக வேகப்படுத்தலாம். சோதனைத் தொகுப்பை இணையாக இயக்கும்போது, அது இயங்கும் போது அதன் முன்னேற்றம் குறித்த குறைந்த பின்னூட்டத்தையே பெறுவீர்கள், ஆனால் சோதனை இயக்கம் முடிந்ததும் கண்டறியப்பட்ட ஏதேனும் சிக்கல்களின் சுருக்கத்தை நீங்கள் பெறுவீர்கள். சோதனைகள் நடத்தப்பட்டன என்பதைக் குறிக்கும் சில வெளியீட்டை நீங்கள் பெற வேண்டும். நீங்கள் SKIPPED சோதனைகளைக் காணலாம், ஆனால் FAIL அல்லது ERROR சோதனை முடிவுகளை ஒருபோதும் பெறக்கூடாது. ஒவ்வொரு பேட்சையும் இணைப்பதற்கு முன்பு நாங்கள் எங்கள் முழுமையான சோதனைத் தொகுப்பை இயக்குகிறோம். அந்தச் செயல்முறை ஏதேனும் சிக்கல்களைக் கண்டறிந்தால், நாங்கள் அந்தப் பேட்சை இணைப்பதில்லை. நீங்கள் ஒரு சோதனைப் பிழை அல்லது தோல்வியைக் கண்டறிந்தால், ஒன்று உங்கள் சோதனைச் சூழலில் ஏதேனும் விசித்திரமாக உள்ளது, அல்லது நாங்கள் இதற்கு முன்பு காணாத ஒரு விளிம்புநிலை நிகழ்வை நீங்கள் கண்டறிந்துள்ளீர்கள் - எதுவாக இருந்தாலும், எங்களுக்குத் தெரியப்படுத்துங்கள்!
சோதனைகள் தேர்ச்சி பெறுவதோடு கூடுதலாக, இது 100% சோதனை உள்ளடக்கம் எனவும் அறிக்கையிட வேண்டும்.
சோதனை மாறுபாடுகளை இயக்குதல்¶
பைத்தனின் பல பதிப்புகளுக்கு சோதனைகளை இயக்கவும்¶
வழக்கமாக, பல tox கட்டளைகள், BeeWare ஆதரிக்கும் ஒவ்வொரு Python பதிப்பிற்கும் ஒருமுறை என, சோதனைத் தொகுப்பை பலமுறை இயக்க முயற்சிக்கும். இருப்பினும், இதைச் செய்ய, ஒவ்வொரு Python பதிப்பும் உங்கள் கணினியில் நிறுவப்பட்டிருக்க வேண்டும் மற்றும் tox-இன் Python கண்டறிதல் செயல்முறைக்குக் கிடைக்கக்கூடியதாக இருக்க வேண்டும். பொதுவாக, ஒரு பைத்தான் பதிப்பு PATH வழியாகக் கிடைத்தால், tox அதைக் கண்டறிந்து பயன்படுத்த முடியும்.
சோதனைத் தொகுப்பை மட்டும் இயக்கவும்¶
நீங்கள் ஒரு புதிய அம்சத்தை வேகமாக மேம்படுத்திக் கொண்டிருந்தால், முழுமையான சோதனைத் தொகுப்பை இயக்க வேண்டிய அவசியமில்லை; நீங்கள் மட்டுமே யூனிட் சோதனைகளை இயக்கலாம். இதைச் செய்ய, பின்வருவனவற்றை இயக்கவும்:
(.venv) $ tox -e py
(.venv) $ tox -e py
(.venv) C:\...>tox -e py
சோதனைகளின் ஒரு பகுதியை நடத்துக¶
பயன்பாட்டுக்கு, tox யூனிட் டெஸ்ட் தொகுப்பில் உள்ள அனைத்து சோதனைகளையும் இயக்கும். நீங்கள் உங்கள் புதிய சோதனையை உருவாக்கும்போது, அந்த ஒரு சோதனையை மட்டும் இயக்குவது உதவியாக இருக்கும். இதைச் செய்ய, நீங்கள் pytest-க்கு ஒரு வாதமாக [எந்தவொரு (https://docs.pytest.org/en/latest/how-to/usage.html#specifying-which-tests-to-run) குறிப்பிடுவதையும்]tox அனுப்பலாம். இந்த சோதனைப் பாதைகள் briefcase கோப்பகத்திற்கு சார்புடையவை. உதாரணமாக, ஒரே கோப்பில் உள்ள சோதனைகளை மட்டும் இயக்க, பின்வருமாறு இயக்கவும்:
(.venv) $ tox -e py -- tests/path_to_test_file/test_some_test.py
(.venv) $ tox -e py -- tests/path_to_test_file/test_some_test.py
(.venv) C:\...>tox -e py -- tests/path_to_test_file/test_some_test.py
சோதனைத் தொகுப்பின் ஒரு பகுதியை இயக்கும்போதும் உங்களுக்கு ஒரு கவரேஜ் அறிக்கை கிடைக்கும் - ஆனால், நீங்கள் இயக்கிய குறிப்பிட்ட சோதனைகளால் செயல்படுத்தப்பட்ட கோட் வரிகளை மட்டுமே கவரேஜ் முடிவுகள் தெரிவிக்கும்.
ஒரு குறிப்பிட்ட பைத்தான் பதிப்பிற்கான சோதனைத் தொகுப்பை இயக்கவும்¶
பின்னமைப்பாக tox -e py உங்கள் கணினியில் python எனத் தீர்க்கப்படும் எந்தவொரு விளக்கிகொண்டும் இயங்கும். உங்களிடம் பல பைத்தான் பதிப்புகள் நிறுவப்பட்டிருந்தால், மேலும் நீங்கள் நிறுவியுள்ள பதிப்புகளில் இருந்து ஒரு குறிப்பிட்ட பைத்தான் பதிப்பைச் சோதிக்க விரும்பினால், பயன்படுத்த ஒரு குறிப்பிட்ட பைத்தான் பதிப்பை நீங்கள் குறிப்பிடலாம். உதாரணமாக, பைத்தான் 3.10 இல் சோதனைத் தொகுப்பை இயக்க, பின்வருவனவற்றை இயக்கவும்:
(.venv) $ tox -e py310
(.venv) $ tox -e py310
(.venv) C:\...>tox -e py310
கட்டளை வரியில் -- மற்றும் ஒரு சோதனை விவரக்குறிப்பைச் சேர்ப்பதன் மூலம் ஒரு சோதனைகளின் துணைக்குழு-ஐ இயக்க முடியும்.
கவரேஜ் இல்லாமல் சோதனைத் தொகுப்பை இயக்கவும் (வேகமாக)¶
இயல்பாக, tox pytest தொகுப்பை ஒற்றை இழை பயன்முறையில் (single threaded mode) இயக்கும். சோதனைத் தொகுப்பை இணை இழை பயன்முறையில் (parallel) இயற்றுவதன் மூலம் அதன் செயல்பாட்டை நீங்கள் வேகப்படுத்தலாம். உருவாக்கப்பட்ட செயல்முறைகளுக்குள் உள்ளடக்கத்தை (coverage) பதிவு செய்வதில் உள்ள சிக்கல்களால், இந்த பயன்முறை உள்ளடக்கக் கோப்புகளை (coverage files) உருவாக்காது. ஒரு தனி பைத்தான் பதிப்பை "வேகமான" பயன்முறையில் (fast mode) இயக்க, பின்வருமாறு இயற்றவும்:
(.venv) $ tox -e py-fast
(.venv) $ tox -e py-fast
(.venv) C:\...>tox -e py-fast
ஒரு சோதனைகளின் உட்பிரிவு-ஐ கட்டளை வரியில் -- மற்றும் ஒரு சோதனை விவரக்குறிப்பைச் சேர்ப்பதன் மூலம் இயக்கலாம்; ஒரு குறிப்பிட்ட பைத்தான் பதிப்பு-ஐ சோதனை இலக்கில் பதிப்பைச் சேர்ப்பதன் மூலம் பயன்படுத்தலாம் (எ.கா., பைத்தானில் py310-fast வேகமாக இயக்க 3.10).
குறியீடு உள்ளடக்கம்¶
BeeWare அதன் குறியீட்டுத் தொகுப்பில் 100% கிளை உள்ளடக்கத்தை பராமரிக்கிறது. நீங்கள் திட்டத்தில் குறியீட்டைச் சேர்க்கும்போது அல்லது மாற்றியமைக்கும்போது, நீங்கள் செய்யும் மாற்றங்களின் உள்ளடக்கத்தை உறுதிசெய்ய, சோதனைக் குறியீட்டைச் சேர்க்க வேண்டும்.
இருப்பினும், BeeWare பல தளங்களையும், பைத்தனின் பல பதிப்புகளையும் இலக்காகக் கொண்டுள்ளது, எனவே முழுமையான உள்ளடக்கத்தை ஒரே தளம் மற்றும் பைத்தான் பதிப்பில் சரிபார்க்க முடியாது. இதைச் சமாளிக்க, tool.coverage.coverage_conditional_plugin.rules பிரிவில் பல நிபந்தனை மறைப்பு விதிகள் வரையறுக்கப்பட்டுள்ளன (எ.கா., விண்டோஸில் சோதனைத் தொகுப்பை இயக்கும்போது செயல்படுத்தப்படாத ஒரு குறியீட்டுத் தொகுப்பைக் குறிக்க pyproject.toml பயன்படுத்தப்படலாம்). இந்த விதிகள், குறிப்பிட்ட தளங்கள் அல்லது பைத்தானின் பதிப்புகளில் மட்டுமே மறைக்கப்படும் குறியீட்டுப் பகுதிகளை அடையாளம் காணப் பயன்படுகின்றன.
குறிப்பிடத்தக்க வகையில், பைத்தான் பதிப்புகளுக்கு இடையே கவரேஜ் அறிக்கை செய்வது சற்று விசித்திரமாக இருக்கலாம். உதாரணமாக, கவரேஜ் கோப்புகள் ஒரு பைத்தான் பதிப்பைப் பயன்படுத்தி உருவாக்கப்பட்டு, ஆனால் மற்றொரு பதிப்பில் கவரேஜ் அறிக்கை செய்யப்பட்டால், தவறவிட்ட கிளைகளுக்கான தவறான நேர்மறை முடிவுகள் அந்த அறிக்கையில் இருக்கலாம். இந்தக் காரணத்திற்காக, கவரேஜ் கோப்புகளை உருவாக்கப் பயன்படுத்தப்பட்ட பைத்தானின் பழமையான பதிப்பையே கவரேஜ் அறிக்கை எப்போதும் பயன்படுத்த வேண்டும்.
கவரேஜ் முடிவுகளைப் புரிந்துகொள்ளுதல்¶
கவரேஜ் சோதனை வெளியீட்டின் முடிவில், சேகரிக்கப்பட்ட கவரேஜ் தரவுகளின் அறிக்கை இருக்க வேண்டும்:
பெயர் கூற்றுகள் தவறுகள் கிளை பகுதி உறை விடுபட்டவை
---------------------------------------------------
மொத்தம் 7540 0 1040 0 100.0%
சோதனைத் தொகுப்பு குறியீட்டில் உள்ள ஒவ்வொரு சாத்தியமான கிளைப் பாதையையும் இயக்கியுள்ளது என்பதை இது நமக்குத் தெரிவிக்கிறது. இது பிழைகள் இல்லை என்பதற்கு 100% உத்தரவாதம் அளிக்கவில்லை, ஆனால் குறியீட்டுத் தொகுப்பில் உள்ள ஒவ்வொரு வரியையும் நாம் இயக்கிப் பார்க்கிறோம் என்று இது அர்த்தப்படுத்துகிறது.
நீங்கள் குறியீட்டுத் தொகுப்பில் மாற்றங்களைச் செய்தால், இந்த உள்ளடக்கத்தில் ஒரு இடைவெளியை நீங்கள் அறிமுகப்படுத்தக்கூடும். இது நிகழும்போது, எந்த வரிகள் இயக்கப்படவில்லை என்பதை உள்ளடக்க அறிக்கை உங்களுக்குக் கூறும். உதாரணமாக, நாம் some/interesting_file.py-இல் சில புதிய தர்க்கங்களைச் சேர்த்து ஒரு மாற்றத்தைச் செய்ததாகக் கொள்வோம். உள்ளடக்க அறிக்கை ஏறக்குறைய இவ்வாறு இருக்கலாம்:
பெயர் அறிக்கைகள் செல்வி பிராஞ்ச் பகுதி உறை விடுபட்டது
-------------------------------------------------------------------------------
src/some/interesting_file.py 111 1 26 0 98.1% 170, 302-307, 320->335
-------------------------------------------------------------------------------
மொத்தம் 7540 1 1726 0 99.9%
சோதனைத் தொகுப்பால் வரி 170, வரிகள் 302-307, மற்றும் வரி 320-லிருந்து வரி 335-க்குச் செல்லும் ஒரு கிளை ஆகியவை செயல்படுத்தப்படவில்லை என்பதை இது நமக்குத் தெரிவிக்கிறது. இந்த உள்ளடக்கத்தை மீட்டெடுக்க நீங்கள் புதிய சோதனைகளைச் சேர்க்க வேண்டும் (அல்லது ஏற்கனவே உள்ள சோதனையைத் திருத்த வேண்டும்).
விருந்தளிக்கும் தளம் மற்றும் பைத்தான் பதிப்புக்கான உள்ளடக்க அறிக்கை¶
உங்கள் பிளாட்ஃபார்ம் மற்றும் பைத்தானின் பதிப்பிற்கான ஒரு கவரேஜ் அறிக்கையை நீங்கள் உருவாக்கலாம். உதாரணமாக, டெஸ்ட் சூட்டை இயக்கி, பைத்தான் 3.10 இல் ஒரு கவரேஜ் அறிக்கையை உருவாக்க, இயக்கும்:
(.venv) $ tox -m test310
(.venv) $ tox -m test310
(.venv) C:\...>tox -m test310
விருந்தளிக்கும் தளத்திற்கான உள்ளடக்க அறிக்கை¶
பைத்தனின் ஆதரிக்கப்படும் அனைத்துப் பதிப்புகளும் tox-க்குக் கிடைத்தால், ஹோஸ்ட் தளத்திற்கான கவரேஜை பின்வருவனவற்றை இயக்கி அறிக்கையிடலாம்:
(.venv) $ tox p -m test-platform
(.venv) $ tox p -m test-platform
(.venv) C:\...>tox p -m test-platform
HTML-ல் உள்ளடக்க அறிக்கை¶
கவரேஜ் -html சுற்றுச்சூழல் பெயர்களில் ஏதேனும் ஒன்றிற்கு tox என்பதைச் சேர்ப்பதன் மூலம் ஒரு HTML கவரேஜ் அறிக்கையை உருவாக்கலாம், உதாரணமாக:
(.venv) $ tox -e coverage-platform-html
(.venv) $ tox -e coverage-platform-html
(.venv) C:\...>tox -e coverage-platform-html
இது வெறும் தேர்வுகளை எழுதுவது மட்டுமல்ல!¶
எங்கள் எல்லா குறியீடுகளையும் சோதிப்பதை நாங்கள் உறுதி செய்தாலும், இந்தப் பணி என்பது அந்தச் சோதனை அளவைப் பராமரிப்பது மட்டும் அல்ல. இந்தப் பணியின் ஒரு பகுதி, நீங்கள் குறியீட்டை எழுதும்போதே அதைத் தணிக்கை செய்வதும் ஆகும். நீங்கள் ஒரு கான்கிரீட் உயிர் காப்பு vest-க்கு ஒரு விரிவான சோதனைத் தொகுப்பை எழுதலாம்… ஆனால் ஒரு கான்கிரீட் உயிர் காப்பு vest, அது உருவாக்கப்பட்ட நோக்கத்திற்காக இன்னும் பயனற்றதாகவே இருக்கும்!
நீங்கள் சோதனைகளை உருவாக்கும்போது, முக்கிய தொகுதி உட்புறமாக சீராக உள்ளதா என்பதையும் சரிபார்க்க வேண்டும். உள்ளகத்தில் சீரற்றதாக இருக்கும் ஏதேனும் மெத்தட் பெயர்களை நீங்கள் கவனித்தால் (எ.கா., ஒரு மாட்யூலில் on_select என்று அழைக்கப்படுவது, மற்றொன்றில் on_selected என்று அழைக்கப்படுவது), அல்லது தரவு சீராகக் கையாளப்படாத இடங்களைக் கண்டால், அதைக் குறிப்பிட்டு ஒரு டிக்கெட் எழுப்புவதன் மூலம் எங்கள் கவனத்திற்குக் கொண்டு வாருங்கள். அல்லது, என்ன செய்ய வேண்டும் என்பது உங்களுக்குத் தெரியும் என்பதில் நீங்கள் நம்பிக்கையுடன் இருந்தால், நீங்கள் கண்டறிந்த சிக்கலைச் சரிசெய்யும் ஒரு புல் கோரிக்கையை உருவாக்குங்கள்.
அனைத்தும் சரியாக வேலை செய்தவுடன், உங்கள் மாற்றங்களுடன் ஒரு புல் ரிக்குவஸ்டை சமர்ப்பிக்கலாம்.