Pytest
પાયટેસ્ટ એ પાયથોન પરીક્ષણ માળખું છે જે પાયપાઈ પ્રોજેક્ટમાંથી ઉદ્દભવ્યું છે. તેનો ઉપયોગ એકમ પરીક્ષણો, એકીકરણ પરીક્ષણો, અંત-થી-અંત પરીક્ષણો અને કાર્યાત્મક પરીક્ષણો સહિત વિવિધ પ્રકારના સોફ્ટવેર પરીક્ષણો લખવા માટે થઈ શકે છે. તેની વિશેષતાઓમાં પેરામેટ્રીઝ્ડ પરીક્ષણ, ફિક્સર અને ફરીથી લેખનનો દાવો સામેલ છે. પાયટેસ્ટ ફિક્સર પરીક્ષણના કિસ્સાઓમાં પરિમાણના નામોમાં પસાર કરીને પરીક્ષણો માટેના સંદર્ભો પ્રદાન કરે છે; તેનું પરિમાણ ઇનપુટ અને આઉટપુટના બહુવિધ સમૂહોના પરીક્ષણ માટે ડુપ્લિકેટ કોડને દૂર કરે છે; અને તેના ફરીથી લખાયેલા દાવા નિવેદનો નિષ્ફળતાના કારણો માટે વિગતવાર આઉટપુટ પ્રદાન કરે છે. પાયથોનના બિલ્ટ-ઇન મોડ્યુલ યુનિટટેસ્ટની ખામીઓને દૂર કરવા માટે તૃતીય-પક્ષ પેકેજો દ્વારા કરવામાં આવેલા પ્રયાસના ભાગરૂપે હિસ્ટ્રી પાયટેસ્ટ વિકસાવવામાં આવ્યું હતું. તે પાયપાઇના ભાગ રૂપે ઉદ્દભવ્યું હતું, જે પાયથોનનું પ્રમાણભૂત CPython માટે વૈકલ્પિક અમલીકરણ છે. 2003ની શરૂઆતમાં તેની રચના થઈ ત્યારથી, પાયપાઇએ પરીક્ષણ પર ભારે ભાર મૂક્યો છે. પાયપાઈ પાસે નવા લખાયેલા કોડ માટે એકમ પરીક્ષણો, ભૂલો માટે રીગ્રેસન પરીક્ષણો અને સીપીથોનના પરીક્ષણ સ્યુટનો ઉપયોગ કરીને એકીકરણ પરીક્ષણો હતા. 2004ના મધ્યમાં, યુટેસ્ટ નામનું પરીક્ષણ માળખું ઉભરી આવ્યું અને પી. પી. વાય. માં યોગદાન આપનારાઓએ હાલના પરીક્ષણના કેસોને યુટેસ્ટમાં રૂપાંતરિત કરવાનું શરૂ કર્યું. દરમિયાન, યુરોપાયથોન 2004 ખાતે પરીક્ષણ માટે પૂરક પ્રમાણભૂત પુસ્તકાલયની શોધ કરવામાં આવી હતી, જેનું નામ એસટીડી હતું. આ પેકેજમાં સિદ્ધાંતો રજૂ કરવામાં આવ્યા હતા, જેમ કે ફરીથી લખવાનો દાવો, જે પાછળથી પાયટેસ્ટ બનશે. 2004ના અંતમાં, એસ. ટી. ડી. પ્રોજેક્ટનું નામ બદલીને પી. આઈ. કરવામાં આવ્યું હતું, std.utest નું નામ બદલીને py.test કરવામાં આવ્યું હતું અને પી. આઈ. લાઈબ્રેરીને પી. પી. વાય. થી અલગ કરવામાં આવી હતી. નવેમ્બર 2010માં, પાઇટેસ્ટ 2.0ને પી. આઈ. થી અલગ પેકેજ તરીકે રજૂ કરવામાં આવ્યું હતું. ઓગસ્ટ 2016 સુધી તેને હજુ પણ py.test કહેવામાં આવતું હતું, પરંતુ પાયટેસ્ટ 3.0 ના પ્રકાશન પછી ભલામણ કરેલ કમાન્ડ લાઇન એન્ટ્રી પોઇન્ટ પાયટેસ્ટ બની ગયું. પાયટેસ્ટને તેની લોકપ્રિયતાને કારણે વિકાસકર્તા સુરક્ષા પ્લેટફોર્મ સ્નાઇક દ્વારા પાયથોનમાં મુખ્ય ઇકોસિસ્ટમ પ્રોજેક્ટ્સમાંના એક તરીકે વર્ગીકૃત કરવામાં આવ્યું છે. યુનિટટેસ્ટ અને નોઝ (અન્ય પરીક્ષણ પેકેજ) માંથી પાઇટેસ્ટ તરફ વળેલા કેટલાક જાણીતા પ્રોજેક્ટ્સમાં મોઝિલા અને ડ્રૉપબૉક્સનો સમાવેશ થાય છે. લાક્ષણિકતાઓ પેરામેટ્રીઝ્ડ પરીક્ષણ પરીક્ષણ કાર્યો દ્વારા મૂલ્યો મોકલવા અને સાચા આઉટપુટ માટે તપાસ કરવા માટે સોફ્ટવેર પરીક્ષણમાં એક સામાન્ય પેટર્ન છે. ઘણા કિસ્સાઓમાં, કાર્યક્ષમતાને સંપૂર્ણ રીતે ચકાસવા માટે, વ્યક્તિએ ઇનપુટ/આઉટપુટના બહુવિધ સમૂહોનું પરીક્ષણ કરવાની જરૂર પડે છે, અને આવા કિસ્સાઓ અલગથી લખવાથી ડુપ્લિકેટ કોડનું કારણ બનશે કારણ કે મોટાભાગની ક્રિયાઓ સમાન રહેશે, માત્ર ઇનપુટ/આઉટપુટ મૂલ્યોમાં અલગ હશે. પાયટેસ્ટની પેરામેટ્રીઝ્ડ પરીક્ષણ સુવિધા એક પરીક્ષણ કેસમાં વિવિધ પુનરાવર્તનોને જોડીને, પછી આ પુનરાવર્તનોને ચલાવીને અને દરેક પરીક્ષણના પરિણામને અલગથી પ્રદર્શિત કરીને આવા ડુપ્લિકેટ કોડને દૂર કરે છે. પાયટેસ્ટમાં પેરામેટ્રીઝ્ડ પરીક્ષણો ડેકોરેટર દ્વારા ચિહ્નિત કરવામાં આવે છે, જ્યાં પ્રથમ પરિમાણ, અલ્પવિરામથી અલગ કરેલા નામોની સ્ટ્રિંગ છે, અને તેમાં પસાર થવા માટેના મૂલ્યોની સૂચિ છે. જ્યારે તેમાં બહુવિધ નામો હોય, ત્યારે ટુપલ્સની સૂચિ હશે જ્યાં દરેક ટુપલના મૂલ્યો અનુક્રમણિકા દ્વારા નામોને અનુરૂપ હોય છે. પછી ડેકોરેટર દ્વારા પરિમાણો તરીકે ચિહ્નિત થયેલ પરીક્ષણ કાર્યમાં નામો પસાર કરવામાં આવે છે. જ્યારે પાયટેસ્ટ આવા સુશોભિત પરીક્ષણો ચલાવે છે, ત્યારે દરેક જોડી અને તેના પોતાના પરીક્ષણ આઉટપુટ અને અનન્ય ઓળખકર્તા સાથે એક અલગ રન બનાવશે. પછી ઓળખકર્તાનો ઉપયોગ વ્યક્તિગત ડેટા જોડીઓ ચલાવવા માટે થઈ શકે છે. સોફ્ટવેર પરીક્ષણો લખતી વખતે, દાવો નિવેદન એ પરીક્ષણની નિષ્ફળતાને સંચારિત કરવા માટેનું પ્રાથમિક માધ્યમ છે, જ્યાં અપેક્ષિત મૂલ્યોની સરખામણી વાસ્તવિક મૂલ્યો સાથે કરવામાં આવે છે. જ્યારે પાયથોનનો બિલ્ટ-ઇન એસર્ટ કીવર્ડ્સ નિષ્ફળતાના કિસ્સામાં કોઈ વિગતો વિના માત્ર એસર્ટિઅન એરરને ઉઠાવશે, ત્યારે પાયટેસ્ટ પાયથોનના એસર્ટ કીવર્ડ્સને ફરીથી લખે છે અને નિષ્ફળતાના કારણો માટે વિગતવાર આઉટપુટ પ્રદાન કરે છે, જેમ કે એસર્ટ સ્ટેટમેન્ટમાં કયા અભિવ્યક્તિઓનું મૂલ્યાંકન કરવામાં આવે છે. યુનિટટેસ્ટ (પરીક્ષણ માટે પાયથોનનું બિલ્ટ-ઇન મોડ્યુલ) ના ભારપૂર્વકના નિવેદનો સાથે સરખામણી કરી શકાય છેઃ તે વધુ શાબ્દિક વાક્યરચનાનું પાલન કરે છે કારણ કે તે જાવા પ્રોગ્રામિંગ ભાષાના જેયુનિટ દ્વારા પ્રેરિત છે, જેમ કે મોટાભાગની યુનિટ પરીક્ષણ લાઈબ્રેરીઓ છે; પાયટેસ્ટ પાયથોનના બિલ્ટ-ઇન ભારપૂર્વકના કૉલ્સને અટકાવતી વખતે તે જ પ્રાપ્ત કરે છે, જે અભિગમને વધુ સંક્ષિપ્ત બનાવે છે. પાઇટેસ્ટ ફિક્સર પાઇટેસ્ટના પરીક્ષણો ચકાસે છે કે કમ્પ્યુટર કોડ એએએ તરીકે ઓળખાતા ગોઠવણી, કાર્ય અને દાવા અનુક્રમમાં રચાયેલ પરીક્ષણોનો ઉપયોગ કરીને અપેક્ષા મુજબ પ્રદર્શન કરે છે. તેની ફિક્સર પરીક્ષણો માટે સંદર્ભ પ્રદાન કરે છે. તેનો ઉપયોગ સિસ્ટમને જાણીતી સ્થિતિમાં મૂકવા અને ડેટાને પરીક્ષણ કાર્યોમાં પસાર કરવા માટે થઈ શકે છે. ફિક્સર વ્યવહારીક રીતે પરીક્ષણના શરીરરચનામાં ગોઠવણી તબક્કાની રચના કરે છે (એએએ, ગોઠવણી, કાર્ય, દાવા માટે ટૂંકું). પાયટેસ્ટ ફિક્સર પરીક્ષણના કેસો પહેલાં સેટઅપ તરીકે અથવા પરીક્ષણના કેસો પછી સાફ કરવા માટે ચલાવી શકાય છે, પરંતુ તે યુનિટટેસ્ટ અને નોઝ (અન્ય તૃતીય-પક્ષ પાયથોન પરીક્ષણ માળખું) ના સેટઅપ્સ અને ટિયરડાઉનથી અલગ છે. પાયટેસ્ટ ફિક્સર તરીકે જાહેર કરાયેલા કાર્યોને ડેકોરેટર દ્વારા ચિહ્નિત કરવામાં આવે છે, જેમના નામ પછી પરિમાણો તરીકે પરીક્ષણ કાર્યોમાં પસાર કરી શકાય છે. જ્યારે પાયટેસ્ટ ફિક્સર 'ટેસ્ટ ફંક્શન્સમાં નામો' પરિમાણો શોધે છે, ત્યારે તે પહેલા આવા ફિક્સર માટે સમાન મોડ્યુલમાં શોધ કરે છે, અને જો ન મળે, તો તે 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 પાયથોન (પ્રોગ્રામિંગ ભાષા) વિકાસ સાધનો મફત સોફ્ટવેર પરીક્ષણ સાધનો એકમ પરીક્ષણ માળખું