Làm cách nào để bỏ qua một bài kiểm tra đơn vị trong Django?
@skipif và @skipunless là tất cả những gì tôi tìm thấy, nhưng tôi chỉ muốn bỏ qua một bài kiểm tra ngay bây giờ cho mục đích gỡ lỗi trong khi tôi đã hiểu rõ một số điều.
Làm cách nào để bỏ qua một bài kiểm tra đơn vị trong Django?
@skipif và @skipunless là tất cả những gì tôi tìm thấy, nhưng tôi chỉ muốn bỏ qua một bài kiểm tra ngay bây giờ cho mục đích gỡ lỗi trong khi tôi đã hiểu rõ một số điều.
Câu trả lời:
Mô-đun mới nhất của Python có một vài trình trang trí:
Có cũ rõ ràng @skip
:
from unittest import skip
@skip("Don't want to test")
def test_something():
...
Nếu bạn không thể sử dụng @skip
vì lý do nào đó, @skipIf
sẽ hoạt động. Chỉ cần lừa nó để luôn bỏ qua với đối số True
:
@skipIf(True, "I don't want to run this test yet")
def test_something():
...
Tài liệu về việc bỏ qua các bài kiểm tra
Nếu bạn đang muốn đơn giản là không chạy các tệp thử nghiệm nhất định, thì cách tốt nhất có lẽ là sử dụng fab
hoặc công cụ khác và chạy các thử nghiệm cụ thể.
@skip
?
Django 1.10 cho phép sử dụng các thẻ cho các bài kiểm tra đơn vị. Sau đó, bạn có thể sử dụng --exclude-tag=tag_name
cờ để loại trừ các thẻ nhất định:
from django.test import tag
class SampleTestCase(TestCase):
@tag('fast')
def test_fast(self):
...
@tag('slow')
def test_slow(self):
...
@tag('slow', 'core')
def test_slow_but_core(self):
...
Trong ví dụ trên, để loại trừ các thử nghiệm của bạn với slow
thẻ "", bạn sẽ chạy:
$ ./manage.py test --exclude-tag=slow
--exclude-tag
, ví dụ, --include-tag
nhưng lệnh này không tồn tại.