Python සංවර්ධකයින්ට Pytest එකේ පරීක්ෂණ ලියන හැකියාව වඩාත් ශක්තිමත් කරගැනීමට අවශ්ය උපකරණ සහ ක්රමවේද ගැන මේ ලිපියෙන් විස්තර කරයි. fixtures, parametrization, temporary directories වැනි මූලික කොටස් සකසා ඇති පසු, දැන් පරීක්ෂණ ධාවනයේ වේගය, ලොග් පෙන්වීම, CI වල ස්ථාවරතාවය ගැන සලකා බලමු.
වර්ණවත් ලොග් සහ නිවැරදි Verbosity
පරීක්ෂණයක් අසාර්ථක වුනාම ලොග් පණිවුඩය බලා ගත නොහැකි නම් ඕනෑම කෙනෙකුට ගැටලුව තේරුම්ගැනීම අමාරුයි. pytest -v --log-cli-level=INFO --color=yes යන විධානය භාවිතා කළහොත්, පරීක්ෂණ නාමයන් පෙන්වන විස්තරාත්මක (verbose) ප්රතිඵල, INFO මට්ටමේ ලොග් පණිවුඩ, සහ වර්ණකරණය සමඟ පෙන්වයි. DEBUG මට්ටමක් තෝරා ගත්තාම තවත් ගැඹුරු තොරතුරු ලැබේ. පරීක්ෂණ ඇතුළත ලොග් අඩංගු කර ගැනීමට caplog fixture එක භාවිතා කළ හැකි අතර, එය ලොග් පණිවුඩය සොයා පරීක්ෂා කිරීම සරල කරයි.
යුනිට් vs. ඉන්ටෙග්රේෂන් ටෙස්ට් වෙන් කිරීම
සියලු පරීක්ෂණ එකම කට්ටලයක් ලෙස ධාවනය කිරීම CI පද්ධතිය අඩු වේගයක් ලබා දෙයි. markers භාවිතා කරමින් integration ලෙස ලේබල කරන පරීක්ෂණවලට වඩාත් සම්පූර්ණ පරිසරයක් (ඩේටාබේස්, S3, AWS) අවශ්ය වේ. pytest.ini හෝ pyproject.toml හි markers නියම කර, CI තුළ pytest -m "not integration" ලෙස ධාවනය කළහොත්, යුනිට් පරීක්ෂණ පමණක් ධාවනය වේ. තවත් ආරක්ෂාවක් ලෙස, conftest.py හි autouse fixture එකක් සකස් කර, RUN_INTEGRATION පරිසර විචලනය සකස් නොකළ පසු integration පරීක්ෂණ ස්වයංක්රියව මඟ හැරේ.
Coverage සැකසීම සහ වාර්තා
Coverage කියන්නේ පරීක්ෂණයක් ධාවනය වන අතර ඔබේ කේතයේ කොපමණ පේළි ක්රියාත්මක වුණාදැයි පෙන්වයි. එය ඉහළ වශයෙන් (95%+) තිබුනත්, පරීක්ෂණයේ අසත්ය ආධාරක පරීක්ෂණ (weak assertions) නිසා වැරදි ප්රතිඵල ලැබිය හැක. pytest‑cov ස්ථාපනය කර pytest --cov=my_pipeline --cov-report=term-missing ලෙස ධාවනය කළහොත්, නොකඩන ලේඛන පේළි සරලව දැක්වෙනවා. HTML වාර්තා --cov-report=html භාවිතයෙන් සකස් කළහොත්, htmlcov/index.html විවෘත කර, ග්රැෆිකල් විශ්ලේෂණය කළ හැක.
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ තරුණ සංවර්ධකයින්, විද්යාඥයන්, සහ තාක්ෂණික ව්යාපාර සඳහා Pytest හි මෙම නව පියවරයන් අත්යවශ්යයි. වේගවත් CI පද්ධතියක් නිසා වැඩි දත්ත සමඟ පරීක්ෂණ කරමින් දෝෂ හඳුනා ගැනීම ඉක්මනින් සිදු වේ. ලොග් වර්ණකරණය සහ caplog fixture එක නිසා දෝෂ හඳුනා ගැනීමේ කාලය අඩු වෙයි. markers භාවිතයෙන් integration පරීක්ෂණ තනිව ධාවනය කිරීම, සීමිත සම්පත් (උදා: පාරිභෝගික සර්වර්) වල අධික භාරයක් වැළැක්වීමට උපකාරී වේ. Coverage වාර්තා හරහා කේතයේ අඩුපාඩු හඳුනා ගනිමින්, ගුණාත්මක මෘදුකාංග නිර්මාණයට මඟ පෙන්වයි. මේ සියල්ලම ශ්රී ලංකාවේ තාක්ෂණික කුසලතාවය ඉහළ ගෙන යාමට, දේශීය ආයතනවල පාරිභෝගික විශ්වාසය වැඩි කිරීමේ අරමුණට සේවය කරයි.
අවසන් වශයෙන්, Pytest හි logging, markers, coverage වැනි විශේෂාංග හොඳින් භාවිතා කරමින්, ඔබේ පරීක්ෂණ කට්ටලය වඩාත් විශ්වාසදායක, වේගවත්, සහ පරිසරයට හිතකර කරගත හැක.