Cài đặt thư viện pytest:
Vào cmd gõ: py – m pip install pytest
Chạy các file test và các phương thức test:
Theo mặc định thì pytest sẽ chỉ nhận dạng được các file có tên bắt đầu với test_ hoặc kết thúc với _test. Còn đối với các phương thức thì yêu cầu tên của các phương thức bắt đầu bằng “test”, những phương thức có tên khác sẽ bị bỏ qua.
Dưới đây là ví dụ về đặt tên file pytest hợp lệ và không hợp lệ:
test_username.py --- hợp lệ
username_test.py --- hợp lệ
testusername --- không hợp lệ
usernametest --- không hợp lệ
Và ví dụ về tên các phương thức pytest hợp lệ và không hợp lệ:
def test_method(): --- hợp lệ
def testmethod(): --- hợp lệ
def method(): ---không hợp lệ
Chạy những test được chỉ định:
Chúng ta sẽ sử dụng pytest markers bằng cách định nghĩa các marker trên mỗi phương thức, cách khai báo như sau:
@pytest.mark.<name>
Ví dụ tạo 2 file test test_1.py và test_2.py có nội dung như bên dưới, sau đó chỉ chạy những test có mark tên example1
Nội dung file test_1.py
Nội dung file test_2.py
Sau khi lưu lại 2 file trên, chúng ta sẽ chạy những test có mark tên example1 bằng cách vào đường dẫn nơi đặt 2 file vừa tạo và gõ:
pytest –m example1
Kết quả:
Theo như trên hình thì test_1.py có 1 chức năng bị Fail, test_2 có 2 phương thức bị Fail, chỉ ra bị sai ở chỗ nào của phương thức.
Ngoài ra, pytest có cung cấp các mark được định nghĩa sẵn, chúng ta sẽ vào cmd gõ: pytest - -markers
Fixtures:
Fixtures được dùng để khởi tạo các thông số đầu vào, thay vì trong mỗi đoạn test chúng ta đều phải khai báo các giá trị để đưa vào test thì ta chỉ cần khai báo một lần duy nhất, khi muốn sử dụng vào đoạn test nào thì gọi hàm đã được chúng ta đánh dấu là fixture.
Chúng ta sẽ đi đến ví dụ sau để dễ hình dung hơn
Lưu file với tên test_mod.py, sau đó vào cmd chạy file: pytest –k mod –v .Đây là một cách chạy các test có tên có chữ “mod”
Kết quả:
Thank you.
Vào cmd gõ: py – m pip install pytest
Chạy các file test và các phương thức test:
Theo mặc định thì pytest sẽ chỉ nhận dạng được các file có tên bắt đầu với test_ hoặc kết thúc với _test. Còn đối với các phương thức thì yêu cầu tên của các phương thức bắt đầu bằng “test”, những phương thức có tên khác sẽ bị bỏ qua.
Dưới đây là ví dụ về đặt tên file pytest hợp lệ và không hợp lệ:
test_username.py --- hợp lệ
username_test.py --- hợp lệ
testusername --- không hợp lệ
usernametest --- không hợp lệ
Và ví dụ về tên các phương thức pytest hợp lệ và không hợp lệ:
def test_method(): --- hợp lệ
def testmethod(): --- hợp lệ
def method(): ---không hợp lệ
Chạy những test được chỉ định:
Chúng ta sẽ sử dụng pytest markers bằng cách định nghĩa các marker trên mỗi phương thức, cách khai báo như sau:
@pytest.mark.<name>
Ví dụ tạo 2 file test test_1.py và test_2.py có nội dung như bên dưới, sau đó chỉ chạy những test có mark tên example1
Nội dung file test_1.py
Code:
[FONT=Calibri][FONT=Times New Roman]import pytest[/FONT][/FONT] [FONT=Calibri][FONT=Times New Roman]@pytest.mark.example1[/FONT][/FONT] [FONT=Calibri][FONT=Times New Roman]def test_equal_1():[/FONT][/FONT] [FONT=Calibri][FONT=Times New Roman]a = 1[/FONT][/FONT] [FONT=Calibri][FONT=Times New Roman]b = 2[/FONT][/FONT] [FONT=Calibri][FONT=Times New Roman]assert a==b, "a không bằng b"[/FONT][/FONT] [FONT=Calibri][FONT=Times New Roman]@pytest.mark.example2[/FONT][/FONT] [FONT=Calibri][FONT=Times New Roman]def test_equal_2():[/FONT][/FONT] [FONT=Calibri][FONT=Times New Roman]a = 1[/FONT][/FONT] [FONT=Calibri][FONT=Times New Roman]b = 2[/FONT][/FONT] [FONT=Times New Roman]assert a==b, "a không bằng b"[/FONT]
Code:
[FONT=Calibri][FONT=Times New Roman]import pytest[/FONT][/FONT] [FONT=Calibri][FONT=Times New Roman]@pytest.mark.example1[/FONT][/FONT] [FONT=Calibri][FONT=Times New Roman]def test_equal_1():[/FONT][/FONT] [FONT=Calibri][FONT=Times New Roman]a = 1[/FONT][/FONT] [FONT=Calibri][FONT=Times New Roman]b = 2[/FONT][/FONT] [FONT=Calibri][FONT=Times New Roman]assert a==b, "a không bằng b"[/FONT][/FONT] [FONT=Calibri][FONT=Times New Roman]@pytest.mark.example1[/FONT][/FONT] [FONT=Calibri][FONT=Times New Roman]def test_equal_2():[/FONT][/FONT] [FONT=Calibri][FONT=Times New Roman]a = 1[/FONT][/FONT] [FONT=Calibri][FONT=Times New Roman]b = 2[/FONT][/FONT] [FONT=Times New Roman]assert a==b, "a không bằng b"[/FONT]
pytest –m example1
Kết quả:
Theo như trên hình thì test_1.py có 1 chức năng bị Fail, test_2 có 2 phương thức bị Fail, chỉ ra bị sai ở chỗ nào của phương thức.
Ngoài ra, pytest có cung cấp các mark được định nghĩa sẵn, chúng ta sẽ vào cmd gõ: pytest - -markers
Fixtures:
Fixtures được dùng để khởi tạo các thông số đầu vào, thay vì trong mỗi đoạn test chúng ta đều phải khai báo các giá trị để đưa vào test thì ta chỉ cần khai báo một lần duy nhất, khi muốn sử dụng vào đoạn test nào thì gọi hàm đã được chúng ta đánh dấu là fixture.
Chúng ta sẽ đi đến ví dụ sau để dễ hình dung hơn
Code:
[FONT=Calibri][FONT=Times New Roman]import pytest[/FONT][/FONT] [FONT=Calibri][FONT=Times New Roman]@pytest.fixture[/FONT][/FONT] [FONT=Calibri][FONT=Times New Roman]def input_value():[/FONT][/FONT] [FONT=Calibri][FONT=Times New Roman]input = 10[/FONT][/FONT] [FONT=Calibri][FONT=Times New Roman]return input[/FONT][/FONT] [FONT=Calibri][FONT=Times New Roman]def test_mod_2(input_value):[/FONT][/FONT] [FONT=Calibri][FONT=Times New Roman]assert input_value %2 == 0[/FONT][/FONT] [FONT=Calibri][FONT=Times New Roman]def test_mod_3(input_value):[/FONT][/FONT] [FONT=Times New Roman]assert input_value %3 == 0 [/FONT]
Lưu file với tên test_mod.py, sau đó vào cmd chạy file: pytest –k mod –v .Đây là một cách chạy các test có tên có chữ “mod”
Kết quả:
Thank you.
Nguồn : VNPRO