Pytest тест
Pytest нь python дээр суурилсан тест хийх зориулалттай framework юм. Pytest -г ихэвчлэн REST services тест хийхэд ашиглаж байна. Мөн өгөгдлийн сан, UI болон API тест хийж чадна.
Давуу тал:
- Олон тестийг нэгэн зэрэг ажиллуулах боломжтой.
- Pytest нь тестийн файл, тестийн функцийг шууд заагаагүй бол автоматаар илрүүлэх өөрийн гэсэн аргатай.
- Pytest нь гүйцэтгэлийн явцад тестийн дэд хэсгийг алгасах боломжийг бидэнд олгодог.
- Pytest нь бүх тестийг дэд хэсэгээр ажиллуулах боломжийг бидэнд олгодог.
- Нээлттэй эхийн
- Ашиглахад хялбар, энгийн
Pytest суулгах нь
Сүүлийн хувилбар суулгах бол
pip install pytest
Хувилбар заан суулгах бол
pip install pytest == 2.9.1
Амжилттай суусан эсэхийг шалгах бол
pytest -h
Pytest файл нэр өгөх аргачлал
Файлын нэрийг зааж өгөлгүйгээр бүх тестийг ажиллуулах бол та тестийн файлуудаа дараахь форматуудаас аль нэгийг нь мөрдөхөд л хангалттай.
- test_*.py
- *__test.py
Ингэж дээрх 2 форматаар нэрлэгдсэн бүх тестийн файлыг илрүүлэн ажиллуулах болно.
Жишээ нь:
- test_login.py
- login_test.py гэх байдлаар нэрлэж өгөх хэрэгтэй.
Pytest функцын нэрийг test -р эхэлсэн байхыг заавал шаарддаг бөгөөд test* -р эхлээгүй бол тухайн тестийг тест биш гэж үзэн ажиллуулдаггүй.
Жишээ нь: testLoginUser() гэх байдлаар нэрлэж өгөөрэй.
Тест код бичиж үзэх нь
test_square.py гэсэн нэртэй тест файл үүсгэе. Үүсгэсэн файлруугаа доорх кодыг хуулж бичье
import math
def test_sqrt():
num = 25
assert math.sqrt(num) == 5
def testsquare():
num = 7
assert 7*7 == 40
def tesequality():
assert 10 == 11
Ажиллуулахдаа дараахь коммандыг бичин ажиллуулна.
pytest
Үр дүн
test_square.py .F
============================================== FAILURES
==============================================
______________________________________________ testsquare
_____________________________________________
def testsquare():
num=7
> assert 7*7 == 40
E assert (7 * 7) == 40
test_square.py:9: AssertionError
================================= 1 failed, 1 passed in 0.06 seconds
=================================
Үр дүнгийн эхний мөр дээр файл нэр болон үр дүнг нь харуулж байна. F гэдэг нь алдаа гарсан гэсэн үг бөгөөд харин цэг (.) нь амжилттай тестийг давсанг илтгэнэ.
Дараахь мөрнүүдэд харин алдаа гарсан тестүүдийн дэлгэрэнгүй мэдээлэлийг харуулж байна. Энэхүү жишээны хувьд 7*7 нь 40 -тэй тэнцүү юу гэсэн жишилт дээр алдаа гарсан байна.
Төгсгөлд нь нийт дүгнэлтийн мэдээлэлийг харуулж байна. 1 тест алдаа гарсан 1, тест амжилттай давлаа. Мөн 0,06 сек -нд ажилсан байна.
tesequality нь ажиллаагүй бөгөөд pytest нь зөвхөн test* гэсэн форматаар нэрлэгдсэн функцуудыг тест гэж үзэн ажиллуулдаг.
Ажиллуулсан үр дүнгээ дахин харах бол
pytest -v
Санамж: pytest нь test_* эсвэл *_test гэсэн форматаар нэрлэгдсэн файлуудыг илрүүлэн ажиллуулдаг.