Bộ lọc python có nhanh không?

python -m unittest -v test_module
49 và
python -m unittest -v test_module
50 lần lượt thực hiện biến đổi Fourier và biến đổi Fourier ngược. Đối với
python -m unittest -v test_module
51 và
python -m unittest -v test_module
52 có độ dài
python -m unittest -v test_module
53, các phép biến đổi này được định nghĩa như sau

Y[k]=∑j=1nX[j] An[j−1]​[k−1]X[j]=1 n∑k=1nY[k] An−[j−1]​[k−1

ở đâu

là một trong n gốc của sự thống nhất

Khung thử nghiệm đơn vị

python -m unittest tests/test_something.py
9 ban đầu được lấy cảm hứng từ JUnit và có hương vị tương tự như các khung thử nghiệm đơn vị chính trong các ngôn ngữ khác. Nó hỗ trợ tự động hóa thử nghiệm, chia sẻ mã thiết lập và tắt cho các thử nghiệm, tổng hợp các thử nghiệm thành các bộ sưu tập và tính độc lập của các thử nghiệm với khung báo cáo

Để đạt được điều này,

python -m unittest tests/test_something.py
9 hỗ trợ một số khái niệm quan trọng theo cách hướng đối tượng

lịch thi đấu

Một bộ cố định thử nghiệm thể hiện sự chuẩn bị cần thiết để thực hiện một hoặc nhiều thử nghiệm và bất kỳ hành động dọn dẹp nào có liên quan. Điều này có thể bao gồm, ví dụ, tạo cơ sở dữ liệu tạm thời hoặc proxy, thư mục hoặc khởi động quy trình máy chủ

trường hợp thử nghiệm

Một trường hợp thử nghiệm là đơn vị thử nghiệm riêng lẻ. Nó kiểm tra một phản hồi cụ thể đối với một bộ đầu vào cụ thể.

python -m unittest tests/test_something.py
9 cung cấp một lớp cơ sở,
python -m unittest -v test_module
3, có thể được sử dụng để tạo các trường hợp thử nghiệm mới

bộ kiểm tra

Bộ kiểm thử là tập hợp các trường hợp kiểm thử, bộ kiểm thử hoặc cả hai. Nó được sử dụng để tổng hợp các bài kiểm tra nên được thực hiện cùng nhau

người chạy thử

Trình chạy thử nghiệm là một thành phần điều phối việc thực hiện các thử nghiệm và cung cấp kết quả cho người dùng. Người chạy có thể sử dụng giao diện đồ họa, giao diện văn bản hoặc trả về một giá trị đặc biệt để chỉ ra kết quả thực hiện các bài kiểm tra

Xem thêm

Mô-đun
python -m unittest -v test_module
4

Một mô-đun hỗ trợ thử nghiệm khác với hương vị rất khác

Kiểm tra Smalltalk đơn giản. có hoa văn

Bài báo gốc của Kent Beck về các khung thử nghiệm sử dụng mẫu được chia sẻ bởi

python -m unittest tests/test_something.py
9

người khó tính

Khung đơn giản nhất của bên thứ ba với cú pháp nhẹ hơn để viết bài kiểm tra. Ví dụ,

python -m unittest -v test_module
6

Phân loại công cụ kiểm tra Python

Một danh sách đầy đủ các công cụ kiểm tra Python bao gồm các khung kiểm tra chức năng và thư viện đối tượng giả

Thử nghiệm trong Danh sách gửi thư Python

Một nhóm có sở thích đặc biệt để thảo luận về thử nghiệm và các công cụ thử nghiệm trong Python

Tập lệnh

python -m unittest -v test_module
7 trong bản phân phối nguồn Python là một công cụ GUI để khám phá và thực thi thử nghiệm. Điều này chủ yếu nhằm mục đích dễ sử dụng cho những người mới thử nghiệm đơn vị. Đối với môi trường sản xuất, các thử nghiệm nên được điều khiển bởi một hệ thống tích hợp liên tục như Buildbot, Jenkins, GitHub Actions hoặc AppVeyor

Ví dụ cơ bản¶

Mô-đun

python -m unittest tests/test_something.py
9 cung cấp một bộ công cụ phong phú để xây dựng và chạy thử nghiệm. Phần này chứng minh rằng một tập hợp con nhỏ của các công cụ đủ để đáp ứng nhu cầu của hầu hết người dùng

Đây là một đoạn script ngắn để kiểm tra ba phương thức chuỗi

import unittest

class TestStringMethods[unittest.TestCase]:

    def test_upper[self]:
        self.assertEqual['foo'.upper[], 'FOO']

    def test_isupper[self]:
        self.assertTrue['FOO'.isupper[]]
        self.assertFalse['Foo'.isupper[]]

    def test_split[self]:
        s = 'hello world'
        self.assertEqual[s.split[], ['hello', 'world']]
        # check that s.split fails when the separator is not a string
        with self.assertRaises[TypeError]:
            s.split[2]

if __name__ == '__main__':
    unittest.main[]

Một testcase được tạo bởi phân lớp

python -m unittest -v test_module
9. Ba bài kiểm tra riêng lẻ được xác định bằng các phương thức có tên bắt đầu bằng các chữ cái
python -m unittest tests/test_something.py
10. Quy ước đặt tên này thông báo cho người chạy thử nghiệm về phương thức nào đại diện cho các thử nghiệm

Mấu chốt của mỗi bài kiểm tra là một cuộc gọi tới

python -m unittest tests/test_something.py
11 để kiểm tra kết quả mong đợi; . Các phương pháp này được sử dụng thay cho câu lệnh
python -m unittest tests/test_something.py
15 để người chạy thử nghiệm có thể tích lũy tất cả các kết quả thử nghiệm và tạo báo cáo

Các phương thức

python -m unittest tests/test_something.py
16 và
python -m unittest tests/test_something.py
17 cho phép bạn xác định các lệnh sẽ được thực thi trước và sau mỗi phương thức kiểm tra. Chúng được đề cập chi tiết hơn trong phần Tổ chức mã kiểm tra .

Khối cuối cùng cho thấy một cách đơn giản để chạy thử nghiệm.

python -m unittest tests/test_something.py
18 cung cấp giao diện dòng lệnh cho tập lệnh thử nghiệm. Khi chạy từ dòng lệnh, tập lệnh trên sẽ tạo ra một đầu ra giống như thế này

python -m unittest tests/test_something.py
0

Chuyển tùy chọn

python -m unittest tests/test_something.py
19 cho tập lệnh thử nghiệm của bạn sẽ hướng dẫn
python -m unittest tests/test_something.py
18 kích hoạt mức độ chi tiết cao hơn và tạo ra kết quả sau

python -m unittest tests/test_something.py
3

Các ví dụ trên cho thấy các tính năng

python -m unittest tests/test_something.py
9 được sử dụng phổ biến nhất, đủ để đáp ứng nhiều nhu cầu kiểm tra hàng ngày. Phần còn lại của tài liệu khám phá bộ tính năng đầy đủ từ các nguyên tắc đầu tiên

Đã thay đổi trong phiên bản 3. 11. Hành vi trả về một giá trị từ một phương pháp thử nghiệm [không phải giá trị mặc định

python -m unittest tests/test_something.py
52], hiện không được dùng nữa.

Giao diện dòng lệnh¶

Mô-đun unittest có thể được sử dụng từ dòng lệnh để chạy thử nghiệm từ các mô-đun, lớp hoặc thậm chí các phương thức thử nghiệm riêng lẻ

python -m unittest tests/test_something.py
6

Bạn có thể chuyển vào một danh sách với bất kỳ sự kết hợp nào của tên mô-đun và tên phương thức hoặc lớp đủ điều kiện

Các mô-đun thử nghiệm cũng có thể được chỉ định theo đường dẫn tệp

python -m unittest tests/test_something.py

Điều này cho phép bạn sử dụng hoàn thành tên tệp shell để chỉ định mô-đun thử nghiệm. Tệp được chỉ định vẫn phải nhập được dưới dạng mô-đun. Đường dẫn được chuyển đổi thành tên mô-đun bằng cách xóa '. py' và chuyển đổi các dấu phân cách đường dẫn thành '. ’. Nếu bạn muốn thực thi tệp thử nghiệm không thể nhập dưới dạng mô-đun, thay vào đó, bạn nên thực thi tệp trực tiếp

Bạn có thể chạy thử nghiệm với nhiều chi tiết hơn [độ chi tiết cao hơn] bằng cách chuyển vào cờ -v

python -m unittest -v test_module

Khi được thực thi mà không có đối số Thử nghiệm Khám phá được bắt đầu.

python -m unittest tests/test_something.py
1

Để biết danh sách tất cả các tùy chọn dòng lệnh

python -m unittest tests/test_something.py
5

Đã thay đổi trong phiên bản 3. 2. Trong các phiên bản trước, chỉ có thể chạy các phương thức thử nghiệm riêng lẻ chứ không phải mô-đun hoặc lớp.

Tùy chọn dòng lệnh¶

unittest hỗ trợ các tùy chọn dòng lệnh này

-b, --bộ đệm

Đầu ra tiêu chuẩn và các luồng lỗi tiêu chuẩn được lưu vào bộ đệm trong quá trình chạy thử nghiệm. Đầu ra trong một bài kiểm tra vượt qua bị loại bỏ. Đầu ra được lặp lại bình thường khi kiểm tra lỗi hoặc lỗi và được thêm vào thông báo lỗi

-c, --bắt

Control-C trong quá trình chạy thử, đợi thử nghiệm hiện tại kết thúc rồi báo cáo tất cả các kết quả cho đến nay. Control-C thứ hai tăng ngoại lệ

python -m unittest tests/test_something.py
53 bình thường

Xem Xử lý tín hiệu để biết các chức năng cung cấp chức năng này

-f, --không thành công

Dừng chạy thử khi có lỗi hoặc lỗi đầu tiên

-k

Chỉ chạy thử nghiệm các phương thức và lớp phù hợp với mẫu hoặc chuỗi con. Tùy chọn này có thể được sử dụng nhiều lần, trong trường hợp đó, tất cả các trường hợp thử nghiệm khớp với bất kỳ mẫu nào đã cho đều được bao gồm

Các mẫu có chứa ký tự đại diện [

python -m unittest tests/test_something.py
54] được khớp với tên bài kiểm tra bằng cách sử dụng
python -m unittest tests/test_something.py
55;

Các mẫu được so khớp với tên phương thức kiểm tra đủ điều kiện do trình tải kiểm tra nhập vào

Ví dụ:

python -m unittest tests/test_something.py
56 khớp với
python -m unittest tests/test_something.py
57,
python -m unittest tests/test_something.py
58, nhưng không khớp với
python -m unittest tests/test_something.py
59

--người dân địa phương

Hiển thị các biến cục bộ trong truy vết

Mới trong phiên bản 3. 2. Các tùy chọn dòng lệnh

python -m unittest -v test_module
80,
python -m unittest -v test_module
81 và
python -m unittest -v test_module
82 đã được thêm vào.

Mới trong phiên bản 3. 5. Tùy chọn dòng lệnh

python -m unittest -v test_module
83.

Mới trong phiên bản 3. 7. Tùy chọn dòng lệnh

python -m unittest -v test_module
84.

Dòng lệnh cũng có thể được sử dụng để khám phá thử nghiệm, để chạy tất cả các thử nghiệm trong một dự án hoặc chỉ một tập hợp con

Khám phá thử nghiệm¶

Mới trong phiên bản 3. 2

Unittest hỗ trợ khám phá thử nghiệm đơn giản. Để tương thích với khám phá thử nghiệm, tất cả các tệp thử nghiệm phải là mô-đun hoặc gói importable from the top-level directory of the project [this means that their filenames must be valid identifiers].

Khám phá thử nghiệm được triển khai trong

python -m unittest -v test_module
85, nhưng cũng có thể được sử dụng từ dòng lệnh. Việc sử dụng dòng lệnh cơ bản là

python -m unittest -v test_module
8

Ghi chú

Là một phím tắt,

python -m unittest -v test_module
86 tương đương với
python -m unittest -v test_module
87. Nếu bạn muốn truyền đối số để kiểm tra khám phá, lệnh phụ
python -m unittest -v test_module
88 phải được sử dụng rõ ràng

Lệnh phụ

python -m unittest -v test_module
88 có các tùy chọn sau

-v, --dài dòng

Báo cáo dài dòng

-s, --thư mục bắt đầu thư mục

Thư mục để bắt đầu khám phá [

python -m unittest -v test_module
90 mặc định]

-p, --mẫu mẫu

Chủ Đề