Pytest
பைடெஸ்ட் என்பது பைபை திட்டத்திலிருந்து தோன்றிய ஒரு பைதான் சோதனை கட்டமைப்பாகும். அலகு சோதனைகள், ஒருங்கிணைப்பு சோதனைகள், இறுதி முதல் இறுதி சோதனைகள் மற்றும் செயல்பாட்டு சோதனைகள் உள்ளிட்ட பல்வேறு வகையான மென்பொருள் சோதனைகளை எழுத இது பயன்படுத்தப்படலாம். அதன் அம்சங்களில் அளவுரு சோதனை, சாதனங்கள் மற்றும் மறு எழுத்து வலியுறுத்தல் ஆகியவை அடங்கும். பைடெஸ்ட் சாதனங்கள் சோதனை நிகழ்வுகளில் அளவுரு பெயர்களில் தேர்ச்சி பெறுவதன் மூலம் சோதனைகளுக்கான சூழல்களை வழங்குகின்றன; அதன் அளவுரு பல தொகுப்பு உள்ளீடு மற்றும் வெளியீட்டை சோதிப்பதற்கான நகல் குறியீட்டை நீக்குகிறது; மேலும் அதன் மீண்டும் எழுதப்பட்ட உறுதி அறிக்கைகள் தோல்விக்கான காரணங்களுக்கான விரிவான வெளியீட்டை வழங்குகின்றன. பைத்தானின் உள்ளமைக்கப்பட்ட தொகுதி அலகு சோதனையின் குறைபாடுகளை நிவர்த்தி செய்வதற்கான மூன்றாம் தரப்பு தொகுப்புகளின் முயற்சியின் ஒரு பகுதியாக வரலாறு பைடெஸ்ட் உருவாக்கப்பட்டது. இது பைபியின் ஒரு பகுதியாக உருவானது, இது பைத்தானை நிலையான சிபைத்தானுக்கு மாற்றாக செயல்படுத்துகிறது. 2003 ஆம் ஆண்டின் தொடக்கத்தில் உருவாக்கப்பட்டதிலிருந்து, பைபை சோதனைக்கு அதிக முக்கியத்துவம் அளித்துள்ளது. புதிதாக எழுதப்பட்ட குறியீட்டிற்கான அலகு சோதனைகள், பிழைகளுக்கான பின்னடைவு சோதனைகள் மற்றும் CPython இன் சோதனை தொகுப்பைப் பயன்படுத்தி ஒருங்கிணைப்பு சோதனைகள் பைபியில் இருந்தன. 2004 ஆம் ஆண்டின் நடுப்பகுதியில், யூடெஸ்ட் என்ற சோதனைக் கட்டமைப்பு உருவானது மற்றும் பைபிக்கு பங்களிப்பாளர்கள் ஏற்கனவே உள்ள சோதனை நிகழ்வுகளை யூடெஸ்டாக மாற்றத் தொடங்கினர். இதற்கிடையில், யூரோபைதான் 2004 இல் எஸ். டி. டி என்று பெயரிடப்பட்ட சோதனைக்கான நிரப்பு நிலையான நூலகம் கண்டுபிடிக்கப்பட்டது. இந்த தொகுப்பு பின்னர் பைடெஸ்ட் ஆக மாறும் வலியுறுத்தல் மீண்டும் எழுதுவது போன்ற கொள்கைகளை வகுத்தது. 2004 ஆம் ஆண்டின் பிற்பகுதியில், எஸ். டி. டி திட்டம் பை என மறுபெயரிடப்பட்டது, std.utest py.test ஆனது, மேலும் பை நூலகம் பைபியிலிருந்து பிரிக்கப்பட்டது. நவம்பர் 2010 இல், பைடெஸ்ட் 2.0 பை இலிருந்து தனித்தனி தொகுப்பாக வெளியிடப்பட்டது. ஆகஸ்ட் 2016 வரை இது py.test என்று அழைக்கப்பட்டது, ஆனால் பைடெஸ்ட் 3 வெளியீட்டைத் தொடர்ந்து பரிந்துரைக்கப்பட்ட கட்டளை வரி நுழைவு புள்ளி பைடெஸ்ட் ஆனது. பைட்டஸ்ட் அதன் புகழ் காரணமாக பைத்தானில் உள்ள முக்கிய சுற்றுச்சூழல் திட்டங்களில் ஒன்றாக டெவலப்பர் பாதுகாப்பு தளமான ஸ்னைக் மூலம் வகைப்படுத்தப்பட்டுள்ளது. யூனிட்டெஸ்ட் மற்றும் மூக்கிலிருந்து (மற்றொரு சோதனை தொகுப்பு) பைடெஸ்டுக்கு மாறிய சில நன்கு அறியப்பட்ட திட்டங்களில் மொஸில்லா மற்றும் டிராப்பாக்ஸ் ஆகியவை அடங்கும். பண்புகள் அளவுரு சோதனை சோதனை செயல்பாடுகள் மூலம் மதிப்புகளை அனுப்புவதற்கும் சரியான வெளியீட்டைச் சரிபார்ப்பதற்கும் மென்பொருள் சோதனையில் இது ஒரு பொதுவான வடிவமாகும். பல சந்தர்ப்பங்களில், செயல்பாடுகளை முழுமையாக சோதிக்க, ஒருவர் உள்ளீடு/வெளியீட்டின் பல தொகுப்புகளை சோதிக்க வேண்டும், மேலும் இதுபோன்ற நிகழ்வுகளை தனித்தனியாக எழுதுவது நகல் குறியீட்டை ஏற்படுத்தும், ஏனெனில் பெரும்பாலான செயல்கள் ஒரே மாதிரியாக இருக்கும், உள்ளீடு/வெளியீட்டு மதிப்புகளில் மட்டுமே வேறுபடுகின்றன. பைடெஸ்டின் அளவுரு சோதனை அம்சம் வெவ்வேறு மறு செய்கைகளை ஒரு சோதனை வழக்கில் இணைப்பதன் மூலம் அத்தகைய நகல் குறியீட்டை நீக்குகிறது, பின்னர் இந்த மறு செய்கைகளை இயக்கி ஒவ்வொரு சோதனையின் முடிவையும் தனித்தனியாகக் காட்டுகிறது. பைடெஸ்டில் உள்ள அளவுரு சோதனைகள் அலங்கரிப்பாளரால் குறிக்கப்படுகின்றன, அங்கு முதல் அளவுரு, காற்புள்ளியால் பிரிக்கப்பட்ட பெயர்களின் சரம் மற்றும் கடந்து செல்ல வேண்டிய மதிப்புகளின் பட்டியல் ஆகும். இதில் பல பெயர்கள் இருக்கும்போது, ஒவ்வொரு டப்பிளிலும் உள்ள மதிப்புகள் குறியீட்டின் அடிப்படையில் உள்ள பெயர்களுடன் ஒத்திருக்கும் டப்பிள்களின் பட்டியலாக இருக்கும். அதில் உள்ள பெயர்கள் பின்னர் டெக்கரேட்டரால் அளவுருக்களாக குறிக்கப்பட்ட சோதனை செயல்பாட்டிற்கு அனுப்பப்படுகின்றன. பைடெஸ்ட் அத்தகைய அலங்கரிக்கப்பட்ட சோதனைகளை இயக்கும்போது, ஒவ்வொரு ஜோடியும் அதன் சொந்த சோதனை வெளியீடு மற்றும் தனித்துவமான அடையாளங்காட்டியுடன் ஒரு தனி ஓட்டத்தை உருவாக்கும். தனிப்பட்ட தரவு ஜோடிகளை இயக்க அடையாளங்காட்டியைப் பயன்படுத்தலாம். மென்பொருள் சோதனைகளை எழுதும் போது, உறுதிப்படுத்தல் அறிக்கை என்பது சோதனை தோல்வியைத் தொடர்புகொள்வதற்கான ஒரு முதன்மை வழிமுறையாகும், அங்கு எதிர்பார்க்கப்படும் மதிப்புகள் உண்மையான மதிப்புகளுடன் ஒப்பிடப்படுகின்றன. பைத்தானின் உள்ளமைக்கப்பட்ட உறுதியான முக்கிய சொல் தோல்வியுற்ற சந்தர்ப்பங்களில் எந்த விவரங்களும் இல்லாமல் அசெர்டின் ஏரரை மட்டுமே உயர்த்தும் அதே வேளையில், பைடெஸ்ட் பைத்தானின் உறுதியான முக்கிய வார்த்தையை மீண்டும் எழுதுகிறது மற்றும் தோல்விகளுக்கான காரணங்களுக்கான விரிவான வெளியீட்டை வழங்குகிறது, அதாவது அசெர்டிங் அறிக்கையில் உள்ள வெளிப்பாடுகள் மதிப்பீடு செய்கின்றன. யூனிட்டஸ்ட் (சோதனைக்கு பைத்தானின் உள்ளமைக்கப்பட்ட தொகுதி) இன் உறுதியான அறிக்கைகளுடன் ஒரு ஒப்பீடு செய்யப்படலாம்ஃ ஜாவா நிரலாக்க மொழியின் ஜூனிட் மூலம் ஈர்க்கப்பட்டதால், பெரும்பாலான யூனிட் சோதனை நூலகங்களைப் போலவே, இது மிகவும் வினைச்சொல் தொடரியல் பின்பற்றுகிறது; பைத்தானின் உள்ளமைக்கப்பட்ட வலியுறுத்தல் அழைப்புகளை இடைமறிக்கும் போது பைடெஸ்ட் அதையே அடைகிறது, இது அணுகுமுறையை மிகவும் சுருக்கமாக ஆக்குகிறது. பைடெஸ்ட் சாதனங்கள் பைடெஸ்டின் சோதனைகள் ஏஏஏ எனப்படும் ஏற்பாடு, செயல் மற்றும் உறுதிப்படுத்தும் வரிசையில் கட்டமைக்கப்பட்ட சோதனைகளைப் பயன்படுத்தி கணினி குறியீடு எதிர்பார்த்தபடி செயல்படுகிறது என்பதை சரிபார்க்கிறது. அதன் சாதனங்கள் சோதனைகளுக்கான சூழலை வழங்குகின்றன. ஒரு அமைப்பை அறியப்பட்ட நிலையில் வைக்கவும், தரவை சோதனை செயல்பாடுகளுக்கு அனுப்பவும் அவை பயன்படுத்தப்படலாம். பொருத்துதல்கள் நடைமுறையில் ஒரு சோதனையின் உடற்கூறியல் (ஏஏஏ, ஏற்பாடு, செயல், வலியுறுத்தல்) இல் ஏற்பாடு கட்டத்தை உருவாக்குகின்றன. பைடெஸ்ட் சாதனங்கள் சோதனை வழக்குகளுக்கு முன் அமைப்பாகவோ அல்லது சுத்தம் செய்வதற்கான சோதனை வழக்குகளுக்குப் பிறகோ இயங்கலாம், ஆனால் அவை யூனிட் டெஸ்ட் மற்றும் மூக்கு (மற்றொரு மூன்றாம் தரப்பு பைதான் சோதனை கட்டமைப்பு) இன் அமைப்புகள் மற்றும் கண்ணீர்ப்புகைகளில் இருந்து வேறுபட்டவை. பைடெஸ்ட் சாதனங்கள் என்று அறிவிக்கப்படும் செயல்பாடுகள் அலங்கரிப்பாளரால் குறிக்கப்படுகின்றன, அதன் பெயர்கள் பின்னர் சோதனை செயல்பாடுகளுக்கு அளவுருக்களாக அனுப்பப்படலாம். பைடெஸ்ட் சாதனங்களின் 'சோதனை செயல்பாடுகளில் உள்ள பெயர்கள்' அளவுருக்களைக் கண்டுபிடிக்கும்போது, அது முதலில் அதே தொகுதியில் அத்தகைய சாதனங்களைத் தேடுகிறது, கண்டுபிடிக்கப்படாவிட்டால், அது conftest.py கோப்பில் அத்தகைய சாதனங்களைத் தேடுகிறது. எடுத்துக்காட்டாகஃ இம்போர்ட் பைடெஸ்ட் @pytest.fixture டிஃப் டேட்டாசெட் (): "" சோதனை செயல்பாடுகளுக்கு சில தரவுகளைத் திருப்பித் தருங்கள் "" "ரிடர்ன் {'டேட்டா1': 1, 'டேட்டா2': 2} டிஃப் டெஸ்ட் _ டேட்டாசெட் (டேட்டாசெட்):" "ஃபிக்ஸ்சர் மதிப்பைச் சோதித்து உறுதிப்படுத்தவும்" "உறுதிப்படுத்தல் டேட்டாசெட் = = {'டேட்டா1': 1, 'டேட்டா2': 2} மேலே உள்ள எடுத்துக்காட்டில், பைடெஸ்ட் ஃபிக்ஸ்சர் ஒரு அகராதியைத் திருப்பித் தருகிறது, பின்னர் அது உறுதிப்படுத்தலுக்காக சோதனை செயல்பாட்டிற்கு அனுப்பப்படுகிறது. சோதனை வழக்குகள் போன்ற அதே கோப்புக்குள் நிலைத்தன்மையைக் கண்டறிவதோடு மட்டுமல்லாமல், பைடெஸ்ட் சாதனங்களையும் சோதனைக் கோப்பகத்தில் உள்ள conftest.py கோப்பில் வைக்கலாம். பல conftest.py கோப்புகள் இருக்கலாம், ஒவ்வொன்றும் சோதனைகளின் ஒவ்வொரு துணைக்குழுவிற்கும் சாதனங்களைக் கண்டறிய ஒரு சோதனைக் கோப்பகத்திற்குள் வைக்கப்படுகின்றன. ஃபிக்ச்சர் ஸ்கோப்புகள் பைடெஸ்டில், ஃபிக்ச்சர் ஸ்கோப்புகள் ஒரு ஃபிக்சர் எப்போது அழைக்கப்பட வேண்டும் என்பதை பயனர் வரையறுக்க அனுமதிக்கிறது. நான்கு நிலைப்பாட்டு அளவுகோல்கள் உள்ளனஃ செயல்பாட்டு நோக்கம், வகுப்பு நோக்கம், தொகுதி நோக்கம் மற்றும் அமர்வு நோக்கம். ஃபங்ஷன்-ஸ்கோப்டு ஃபிக்சர்கள் அனைத்து பைடெஸ்ட் ஃபிக்சர்களுக்கும் இயல்புநிலை ஆகும், அவை ஒவ்வொரு முறையும் ஒரு அளவுருவாக ஃபிக்சரைக் கொண்ட ஒரு செயல்பாடு இயங்கும் போது அழைக்கப்படுகின்றன. ஒரு பரந்த நிலைப்பாட்டின் நோக்கத்தைக் குறிப்பிடுவதற்கான குறிக்கோள், தொடர்ச்சியான நிலைப்பாட்டு அழைப்புகளை அகற்றுவதாகும், இது சோதனைச் செயல்பாட்டை மெதுவாக்கக்கூடும். வகுப்பு அளவிலான சாதனங்கள் ஒரு சோதனை வகுப்பிற்கு ஒரு முறை அழைக்கப்படுகின்றன, அவை எத்தனை முறை அழைக்கப்படுகின்றன என்பதைப் பொருட்படுத்தாமல், மற்ற அனைத்து அளவுகளுக்கும் இதே தர்க்கம் பொருந்தும். ஃபிக்சர்ஷிப் ஸ்கோப்பை மாற்றும்போது, ஃபிக்சர்ஷிப் டெக்கரேட்டர்களுக்கு ஸ்கோப் அளவுருவை மட்டுமே சேர்க்க வேண்டும், எடுத்துக்காட்டாக,. சோதனை வடிகட்டுதல் பைடெஸ்டின் மற்றொரு அம்சம் சோதனைகள் மூலம் வடிகட்டும் திறன் ஆகும், அங்கு விரும்பிய சோதனைகள் மட்டுமே இயக்கத் தேர்ந்தெடுக்கப்படுகின்றன, அல்லது டெவலப்பர் விரும்பியபடி ஒரு குறிப்பிட்ட வழியில் செயல்படுகின்றன. "கே" விருப்பத்துடன் (எ. கா. ), பைடெஸ்ட் பெயர்கள் அடங்கிய சோதனைகளை மட்டுமே இயக்கும். இதற்கு நேர்மாறானது உண்மை, அங்கு ஒருவர் ஓட முடியும், மேலும் பெயர்கள் இல்லாத அனைத்து சோதனைகளையும் பைடெஸ்ட் இயக்கும். பைடெஸ்டின் குறிப்பான்கள், சோதனை நடத்தையை மாற்றுவதோடு மட்டுமல்லாமல், சோதனைகளையும் வடிகட்டலாம். பைடெஸ்டின் குறிப்பான்கள் பைதான் அலங்கரிப்பாளர்களாக உள்ளன, அவை சோதனை செயல்பாடுகளின் மேல் வைக்கப்பட்டுள்ள தொடரியல் மூலம் தொடங்குகின்றன. வெவ்வேறு தன்னிச்சையாக பெயரிடப்பட்ட குறிப்பான்களுடன், கட்டளை வரியில் இயங்குவது அத்தகைய குறிப்பான்களால் அலங்கரிக்கப்பட்ட சோதனைகளை மட்டுமே இயக்கும். கிடைக்கக்கூடிய அனைத்து குறிப்பான்கள் அவற்றின் விளக்கங்களுடன் பட்டியலிடப்படலாம்; தனிப்பயன் குறிப்பான்கள் பயனர்களால் வரையறுக்கப்படலாம் மற்றும் pytest.ini இல் பதிவு செய்யப்படலாம், இந்த விஷயத்தில் அந்த தனிப்பயன் குறிப்பான்கள் உள்ளமைக்கப்பட்ட குறிப்பான்களுடன் பட்டியலிடப்படும். மேலும் காண்கஃ JUnit, ஜாவா டாக்டெஸ்டை அடிப்படையாகக் கொண்ட நன்கு அறியப்பட்ட மென்பொருள் சோதனைக் கட்டமைப்பு, டாக்ஸ்டிரிங்குகளுக்கான பைத்தானில் நன்கு அறியப்பட்ட சோதனைக் கட்டமைப்பு அலகு சோதனைக் கட்டமைப்புகளின் பட்டியல் குறிப்புகள் வெளிப்புற இணைப்புகள் https://pypi.python.org/pypi/pytest https://docs.pytest.org பைதான் (நிரலாக்க மொழி) மேம்பாட்டு கருவிகள் இலவச மென்பொருள் சோதனைக் கருவிகள் அலகு சோதனைக் கட்டமைப்புகள்