Tôi hiện đang viết một số bài kiểm tra chức năng bằng cách sử dụng mũi. Thư viện tôi đang thử nghiệm thao tác một cấu trúc thư mục.Nhận tên bài kiểm tra hiện tại trong quá trình thiết lập bằng cách sử dụng mũi
Để có được kết quả có thể lặp lại, tôi lưu trữ mẫu cấu trúc thư mục thử nghiệm và tạo bản sao của cấu trúc đó trước khi thực hiện kiểm tra (tôi làm điều đó bên trong các chức năng kiểm tra setup
). Điều này đảm bảo rằng tôi luôn luôn có một trạng thái được xác định rõ ở đầu bài kiểm tra.
Bây giờ tôi có hai yêu cầu thêm:
- Nếu một thử nghiệm thất bại, tôi muốn cấu trúc thư mục nó hoạt động trên để không được ghi đè hoặc bị xóa, vì vậy mà tôi có thể phân tích vấn đề.
- Tôi muốn có thể chạy nhiều thử nghiệm song song.
Cả hai yêu cầu này đều có thể được giải quyết bằng cách tạo một bản sao mới có tên khác cho mỗi thử nghiệm được thực hiện. Vì lý do này, tôi muốn có quyền truy cập vào tên của thử nghiệm hiện đang được thực thi trong hàm setup
, để tôi có thể đặt tên cho bản sao một cách thích hợp. Có bất kì cách nào để đạt được điều này không?
Một minh họa mã ví dụ:
def setup_func(test_name):
print "Setup of " + test_name
def teardown_func(test_name):
print "Teardown of " + test_name
@with_setup(setup_func, teardown_func)
def test_one():
pass
@with_setup(setup_func, teardown_func)
def test_two():
pass
Dự kiến sản lượng:
Setup of test_one
Teardown of test_one
Setup of test_two
Teardown of test_two
Tiêm tên như một tham số sẽ là giải pháp đẹp nhất, nhưng tôi mở để gợi ý khác là tốt.
Hm, nhờ gợi ý này , nhưng tôi thích một giải pháp không yêu cầu xuất phát từ 'unittest.TestCase'. –
Chắc chắn rồi. Tôi nghĩ rằng giải pháp của bạn bằng cách sử dụng '__name__' bên trong một trang trí trông khá tốt. – alecxe
Điều này đã giúp ... cảm ơn ... –