Thiết lập và Sử dụng pytest Cơ bản trong Phát triển Python

Giới thiệu về pytest

pytest là một framework kiểm thử mạnh mẽ và phổ biến dành cho ngôn ngữ Python, được thiết kế để giúp các nhà phát triển và kỹ sư kiểm thử viết mã kiểm thử một cách dễ dàng, rõ ràng và hiệu quả. Với cú pháp đơn giản và khả năng mở rộng cao, pytest tự động phát hiện các trường hợp kiểm thử, cung cấp thông tin chi tiết khi có lỗi và hỗ trợ đa dạng các loại kiểm thử từ đơn vị đến tích hợp.

Yêu cầu Tiên quyết: Python và pip

Trước khi bắt đầu cài đặt pytest, bạn cần đảm bảo rằng Python và trình quản lý gói pip đã được cài đặt chính xác trên hệ thống của bạn.

  • Để kiểm tra phiên bản Python, hãy mở cửa sổ dòng lệnh (CMD hoặc Terminal) và nhập lệnh sau:
    python --version
    Bạn sẽ thấy phiên bản Python được hiển thị (ví dụ: Python 3.9.5). Nếu lệnh không hoạt động, bạn cần cài đặt Python từ trang chủ python.org.
  • Tương tự, kiểm tra phiên bản pip:
    pip --version
  • Nếu pip của bạn đã cũ, việc cập nhật lên phiên bản mới nhất là điều nên làm để tránh các vấn đề tiềm ẩn trong quá trình cài đặt gói. Sử dụng lệnh sau để nâng cấp pip:
    python -m pip install --upgrade pip

Cài đặt Gói Python (Ví dụ Tổng quát)

Mặc dù không bắt buộc đối với pytest, việc cài đặt các gói Python khác là một tác vụ phổ biến. Ví dụ, để cài đặt thư viện requests, bạn sẽ sử dụng pip như sau:

pip install requests

Để xác nhận gói đã được cài đặt thành công, bạn có thể mở trình thông dịch Python (bằng cách gõ python vào CMD) và thử nhập thư viện:

import requests
print(requests.__version__)

Nếu không có lỗi và phiên bản được in ra, quá trình cài đặt đã thành công.

Cài đặt pytest

Việc cài đặt pytest rất đơn giản thông qua pip.

Từ cửa sổ dòng lệnh của bạn, thực thi lệnh sau:

pip install pytest

Xác minh Cài đặt pytest và Xử lý Lỗi Thường gặp

Sau khi cài đặt, điều quan trọng là phải xác nhận pytest đã được hệ thống của bạn nhận dạng chính xác.

Kiểm tra Phiên bản pytest

Để kiểm tra phiên bản pytest đã cài đặt, sử dụng lệnh:

pytest --version

Xử lý Lỗi: 'pytest' không được nhận dạng là lệnh nội bộ hoặc bên ngoài...

Lỗi này thường xảy ra khi thư mục chứa file thực thi của pytest không được thêm vào biến môi trường PATH của hệ thống. pip thường đặt các file thực thi trong thư mục Scripts con của thư mục cài đặt Python của bạn (ví dụ: C:\Python39\Scripts).

Giải pháp cho hệ điều hành Windows:

  1. Nhấp chuột phải vào biểu tượng "This PC" (hoặc "My Computer") và chọn "Properties".
  2. Trong cửa sổ "System", chọn "Advanced system settings".
  3. Trong cửa sổ "System Properties", nhấp vào nút "Environment Variables...".
  4. Trong phần "System variables", tìm và chọn biến Path, sau đó nhấp vào "Edit".
  5. Nhấp "New" và thêm đường dẫn đầy đủ đến thư mục Scripts của Python của bạn (ví dụ: C:\Users\TÊN_NGƯỜI_DÙNG\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\Scripts hoặc C:\Python39\Scripts).
  6. Nhấp "OK" trên tất cả các cửa sổ để lưu thay đổi.
  7. Điều quan trọng là phải khởi động lại cửa sổ dòng lệnh của bạn để các thay đổi có hiệu lực. Sau đó, thử chạy pytest --version một lần nữa.

Nếu file pytest.exe thực sự bị thiếu trong thư mục Scripts của bạn, bạn có thể cần phải buộc cài đặt lại hoặc cập nhật pytest từ bên trong thư mục đó. Di chuyển đến thư mục Scripts của Python trong CMD (ví dụ: cd D:\Python\Python39\Scripts) và sau đó chạy:

pip install -U pytest

Khởi động lại CMD và xác minh.

Các Quy tắc Cơ bản để Viết Kiểm thử với pytest

pytest tuân theo nguyên tắc "quy ước hơn cấu hình", giúp việc khám phá và chạy kiểm thử trở nên trực quan.

  • Tên file kiểm thử: Đặt tên file kiểm thử bắt đầu bằng test_ (ví dụ: test_calculation.py) hoặc kết thúc bằng _test.py.
  • Tên lớp kiểm thử: Nếu bạn nhóm các kiểm thử vào các lớp, tên lớp phải bắt đầu bằng Test (ví dụ: TestMathOperations). Các lớp kiểm thử không được có hàm tạo __init__.
  • Tên hàm kiểm thử: Tất cả các hàm kiểm thử phải bắt đầu bằng test_ (ví dụ: test_add_numbers).
  • Khẳng định (Assertions): Sử dụng từ khóa assert tiêu chuẩn của Python để đưa ra các khẳng định. pytest tự động cung cấp thông tin chi tiết về lỗi nếu khẳng định thất bại.

Ví dụ Kiểm thử pytest Đơn giản

Hãy tạo một file Python nhỏ, ví dụ calculator.py:

# calculator.py
def add_numbers(num1, num2):
    return num1 + num2

def subtract_numbers(num1, num2):
    return num1 - num2

Bây giờ, tạo một file kiểm thử, test_operations.py, trong cùng thư mục:

# test_operations.py
from calculator import add_numbers, subtract_numbers

class TestCalculatorFunctions:
    def test_add_positive_numbers(self):
        result = add_numbers(7, 3)
        assert result == 10

    def test_subtract_positive_numbers(self):
        result = subtract_numbers(15, 5)
        assert result == 10

    def test_add_negative_numbers(self):
        result = add_numbers(-4, -6)
        assert result == -10

def test_multiply_values(): # Hàm kiểm thử độc lập
    assert (4 * 5) == 20

def test_divide_values_by_one():
    assert (10 / 1) == 10

Để chạy các kiểm thử này, điều hướng đến thư mục chứa calculator.pytest_operations.py trong cửa sổ dòng lệnh của bạn và chỉ cần gõ:

pytest

pytest sẽ tự động tìm kiếm và thực thi tất cả các kiểm thử tuân thủ quy tắc, sau đó báo cáo kết quả chi tiết.

Thẻ: pytest python kiểm thử tự động hóa kiểm thử Pip

Đăng vào ngày 23 tháng 7 lúc 01:02