Kiểm tra mũi - Khung
Dự án mũi được phát hành vào năm 2005, một năm sau đó py.testnhận được chiêu bài hiện đại của nó. Nó được viết bởi Jason Pellerin để hỗ trợ các thành ngữ thử nghiệm tương tự đã được py.test đi tiên phong, nhưng trong một gói dễ cài đặt và bảo trì hơn.
Các nose mô-đun có thể được cài đặt với sự trợ giúp của tiện ích pip
pip install nose
Thao tác này sẽ cài đặt mô-đun mũi trong bản phân phối Python hiện tại cũng như nosetest.exe, có nghĩa là có thể chạy thử nghiệm bằng tiện ích này cũng như sử dụng công tắc –m.
C:\python>nosetests –v test_sample.py
Or
C:\python>python –m nose test_sample.py
nose thu thập các bài kiểm tra từ unittest.TestCasetất nhiên là các lớp con. Chúng ta cũng có thể viết các hàm kiểm tra đơn giản, cũng như các lớp kiểm tra không phải là lớp con của unittest.TestCase. Mũi cũng cung cấp một số chức năng hữu ích để viết các bài kiểm tra tính giờ, kiểm tra các trường hợp ngoại lệ và các trường hợp sử dụng phổ biến khác.
nosethu thập các bài kiểm tra tự động. Không cần phải thu thập thủ công các trường hợp thử nghiệm vào các bộ thử nghiệm. Chạy thử nghiệm là đáp ứng, vìnose bắt đầu chạy thử nghiệm ngay sau khi mô-đun thử nghiệm đầu tiên được tải.
Như với mô-đun đơn nhất, nose hỗ trợ các đồ đạc ở cấp độ gói, mô-đun, lớp và trường hợp thử nghiệm, vì vậy việc khởi tạo tốn kém có thể được thực hiện không thường xuyên nhất có thể.
Cách sử dụng cơ bản
Hãy để chúng tôi xem xét nosetest.py tương tự như tập lệnh được sử dụng trước đó -
# content of nosetest.py
def func(x):
return x + 1
def test_answer():
assert func(3) == 5
Để chạy thử nghiệm trên, hãy sử dụng cú pháp dòng lệnh sau:
C:\python>nosetests –v nosetest.py
Kết quả hiển thị trên bảng điều khiển sẽ như sau:
nosetest.test_answer ... FAIL
================================================================
FAIL: nosetest.test_answer
----------------------------------------------------------------------
Traceback (most recent call last):
File "C:\Python34\lib\site-packages\nose\case.py", line 198, in runTest
self.test(*self.arg)
File "C:\Python34\nosetest.py", line 6, in test_answer
assert func(3) == 5
AssertionError
----------------------------------------------------------------------
Ran 1 test in 0.000s
FAILED (failures = 1)
nose có thể được tích hợp với DocTest bằng cách sử dụng with-doctest tùy chọn trong dòng lệnh Athe bove.
\nosetests --with-doctest -v nosetest.py
Bạn có thể sử dụng nose trong một kịch bản thử nghiệm -
import nose
nose.main()
Nếu bạn không muốn tập lệnh thử nghiệm thoát với 0 khi thành công và 1 khi thất bại (như unittest.main), hãy sử dụng mũi.run () để thay thế -
import nose
result = nose.run()
Kết quả sẽ là true nếu chạy thử thành công hoặc false nếu không thành công hoặc tạo ra một ngoại lệ không cần thiết.
nosehỗ trợ đồ đạc (phương pháp thiết lập và xé nhỏ) ở cấp độ gói, mô-đun, lớp và thử nghiệm. Như với py.test hoặc đồ đạc đơn nhất, thiết lập luôn chạy trước bất kỳ thử nghiệm nào (hoặc tập hợp các thử nghiệm cho các gói và mô-đun thử nghiệm); teardown chạy nếu thiết lập đã hoàn tất thành công, bất kể trạng thái của quá trình chạy thử nghiệm.