2012-04-28 31 views
6

Vì vậy, tôi đang thử nghiệm với việc giới thiệu các thử nghiệm đơn vị selenium trong django 1.4 trong một vài dự án mà tôi đang làm việc.Thực hành tốt nhất để tổ chức kiểm tra selen và thử nghiệm đơn vị

Cách chuẩn để chạy thử nghiệm đơn vị đơn giản là thực hiện ./manage.py test và tôi sử dụng django-ignoretests để loại trừ các ứng dụng django cụ thể mà tôi không muốn thử nghiệm (khi cần).

Tuy nhiên, có cách nào để định cấu hình dự án của mình để tôi có thể quyết định chạy chỉ kiểm tra selen khi tôi muốn và có ./manage.py test chỉ chạy thử nghiệm đơn vị tiêu chuẩn.

Một số phương pháp hay nhất để tách biệt và tổ chức thử nghiệm selenium và thử nghiệm đơn vị tiêu chuẩn là gì?

Trả lời

5

Bạn có thể luôn nhóm tất cả các bài kiểm tra selen của bạn dưới một gói duy nhất myapp/selenium_tests/ (như mô tả ở đây https://stackoverflow.com/a/5160779/1138710 ví dụ) và sau đó chạy manage.py test myapp.selenium_tests và nhóm còn lại của các bài kiểm tra dưới nói myapp/other_tests.

Nếu không, tôi cho rằng bạn có thể viết một Á hậu kiểm tra để kiểm tra đối với từng lớp kiểm tra xem nó có nguồn gốc từ LiveServerTestCase (xem tài liệu: https://docs.djangoproject.com/en/dev/topics/testing/#defining-a-test-runner)

+0

Khi kiểm tra Selenium có xu hướng hoạt động, tôi cố gắng làm như vậy, giữ chúng trong một gói riêng biệt, cùng với tùy chọn bỏ qua chúng (http://stackoverflow.com/a/10743466/4281). Tôi thích ý tưởng của người thử nghiệm, nhưng trong một số trường hợp, các bài kiểm tra có thể không phải là hậu duệ của LiveServerTestCase (đó là một vấn đề khác). –

5

Đối với các lớp học thử nghiệm trong câu hỏi, tôi đã thêm các trang trí sau:

from django.conf import settings 
@unittest.skipIf(getattr(settings,'SKIP_SELENIUM_TESTS', False), "Skipping Selenium tests") 

Sau đó, để bỏ qua những bài kiểm tra thêm các thiết lập file: SKIP_SELENIUM_TESTS = True

này một cách dễ dàng có thể được gói gọn trong một lớp con của LiveServerTestCase hoặc trang trí đơn giản . Nếu tôi có điều đó ở nhiều nơi, nó sẽ là như vậy.

Các vấn đề liên quan