Pytest - Bắt đầu với Thử nghiệm Cơ bản
Bây giờ, chúng ta sẽ bắt đầu với chương trình pytest đầu tiên của mình. Trước tiên, chúng tôi sẽ tạo một thư mục và do đó, tạo các tệp thử nghiệm của chúng tôi trong thư mục.
Hãy để chúng tôi làm theo các bước được hiển thị bên dưới -
Tạo một thư mục mới có tên automation và điều hướng vào thư mục trong dòng lệnh của bạn.
Tạo một tệp có tên test_square.py và thêm mã dưới đây vào tệp đó.
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
Chạy thử nghiệm bằng lệnh sau:
pytest
Lệnh trên sẽ tạo ra kết quả sau:
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
=================================
Xem dòng đầu tiên của kết quả. Nó hiển thị tên tệp và kết quả. F đại diện cho một thử nghiệm thất bại và dấu chấm (.) Thể hiện một thử nghiệm thành công.
Dưới đó, chúng ta có thể xem chi tiết các bài kiểm tra thất bại. Nó sẽ hiển thị câu lệnh nào mà bài kiểm tra không thành công. Trong ví dụ của chúng tôi, 7 * 7 được so sánh ngang bằng với 40, điều này là sai. Cuối cùng, chúng ta có thể thấy tóm tắt thực thi thử nghiệm, 1 không thành công và 1 đạt.
Hàm tesequality không được thực thi vì pytest sẽ không coi nó là một phép thử vì tên của nó không có định dạng test*.
Bây giờ, hãy thực hiện lệnh dưới đây và xem lại kết quả -
pytest -v
-v làm tăng tính dài dòng.
test_square.py::test_sqrt PASSED
test_square.py::testsquare FAILED
============================================== 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.04 seconds
=================================
Bây giờ, kết quả giải thích rõ hơn về bài kiểm tra không thành công và bài kiểm tra đã vượt qua.
Note - lệnh pytest sẽ thực thi tất cả các tệp có định dạng test_* hoặc là *_test trong thư mục hiện tại và các thư mục con.