2014-04-02 14 views
5

Tôi có các thư mục kiểm tra khác nhau (gói). Tôi muốn thiết lập và rách một số dữ liệu cho một gói cụ thể (thư mục).thiết lập/teardown bằng cách sử dụng conftest trong pytest

Sự cố là set_up() được thực hiện trước khi chạy các trường hợp kiểm tra của thư mục đó nhưng sau khi chạy tất cả các testcases, tear_down không thực thi. Nó thực hiện sau khi chạy tất cả các testcase của các gói khác (thư mục) cũng (sau khi toàn bộ phiên của pytest).

 [conftest.py] 

    @pytest.fixture(scope="session", autouse=True) 
     def set_up(request): 
      '''Test package setup''' 

     def tear_down(): 
      '''Test package teardown''' 

Mỗi thư mục có chứa tệp __init__.py rõ ràng.

Vậy làm thế nào để tôi thực hiện tear_down() ngay sau khi chạy tất cả các testcases trong thư mục đó mà set_up được thực thi?

như tôi biết: scope="module" là vô ích trong trường hợp này vì tôi không muốn thiết lập và rách cho mỗi thử nghiệm.

Mọi trợ giúp đều tuyệt vời. Cảm ơn

+0

Loại dữ liệu nào bạn đang thiết lập và rách? Khi tôi hiểu câu hỏi của bạn, bạn muốn một cái gì đó giống như một vật cố định với một phạm vi "gói", nơi bạn có thể chỉ định gói. Đúng không? –

+0

Có vật cố định. Dữ liệu về cơ bản liên quan đến việc chèn một số giá trị trong cơ sở dữ liệu cassandra befor i bắt đầu thử nghiệm và sau khi tất cả các thử nghiệm trong thư mục đó được hoàn thành, tôi muốn cắt ngắn tất cả các bảng. –

Trả lời

7

pytest không hỗ trợ trực tiếp các đồ đạc cấp gói. Không hủy bỏ.

Đối với các khuôn khổ thử nghiệm chính, tôi tin rằng nose is the only one to support package fixtures. Tuy nhiên, mũi 2 đang giảm hỗ trợ vật cố trọn gói. Xem nose2 docs.

hỗ trợ pytest module, function, class, and method level fixtures cho đồ đạc kiểu xunit.

+0

bằng cách sử dụng mũi không phải là một ý tưởng tốt sau đó.Tôi biết điều này nhưng tôi nêu ra câu hỏi này trong trường hợp nếu tôi bị mất something.There là không có giải pháp tốt nhưng Thanks anyway. –

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