Câu trả lời của Nigel là tuyệt vời và chắc chắn là rào cản thấp nhất đối với lựa chọn gia nhập. Tuy nhiên, bạn có thể nhận được phản hồi tốt hơn với django_nose
(và nó không phải là khó khăn để thiết lập;).
Dưới đây là từ: BDD với Python
Đầu tiên: cài đặt một số yêu cầu:
pip install nose pinocchio django_nose
Sau đó, thêm phần sau vào settings.py
TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
NOSE_ARGS = ['--with-spec', '--spec-color']
Sau đó chạy các bài kiểm tra của bạn như bình thường:
python manage.py test
Đầu ra sẽ giống như sau:
Lưu ý: Các nhận xét trong bài kiểm tra của bạn có thể được sử dụng để đưa ra kết quả tốt hơn chỉ là tên.
ví dụ:
def test_something(self):
"""Something should happen"""
...
Sẽ xuất ra "Điều gì đó sẽ xảy ra" khi chạy thử nghiệm.
Để có thêm điểm: Bạn cũng có thể tạo / xuất vùng phủ mã của mình:
pip install coverage
Thêm phần sau vào NOSE_ARGS của bạn trong settings.py: '--with-coverage', '--cover-html', '--cover-package=.', '--cover-html-dir=reports/cover'
ví dụ:
NOSE_ARGS = ['--with-spec', '--spec-color',
'--with-coverage', '--cover-html',
'--cover-package=.', '--cover-html-dir=reports/cover']
Sau đó, bạn sẽ nhận được một bản tóm tắt phạm vi mã đẹp khi bạn chạy python manage.py test
cũng như một báo cáo html gọn gàng trongreports/cover
transaction.atomic()
để đạt được sự cô lập thử nghiệm ......... nTestCase có thể cần thiết (ví dụ: thử nghiệm một số hành vi giao dịch)."