Tôi đang viết các bài kiểm tra selen, với một tập hợp các lớp, mỗi lớp có chứa một số bài kiểm tra. Mỗi lớp hiện sẽ mở ra và sau đó đóng trình duyệt Firefox, trong đó có hai hậu quả:Làm cách nào để chạy một phương thức trước tất cả các bài kiểm tra trong tất cả các lớp?
- siêu chậm, mở firefox mất nhiều thời gian hơn so với chạy thử nghiệm trong một lớp học ...
- tai nạn, bởi vì sau khi firefox đã bị đóng cửa, cố gắng để mở lại nó thật nhanh chóng, từ selen, dẫn đến 'Lỗi 54'
Tôi có thể giải quyết lỗi 54, có thể, bằng cách thêm một giấc ngủ, nhưng nó vẫn sẽ siêu chậm.
Vì vậy, những gì tôi muốn làm là sử dụng lại cùng một phiên bản Firefox trên tất cả các lớp kiểm tra. Điều này có nghĩa là tôi cần chạy một phương thức trước tất cả các lớp thử nghiệm và một phương thức khác sau tất cả các lớp thử nghiệm. Vì vậy, 'setup_class' và 'teardown_class' là không đủ.
Thiết lập [ 'scope'] (http://pytest.org/latest/fixture.html#working-with-a-module-shared-fixture) thành 'module' chưa đủ? – Bakuriu
Tôi cần một chức năng để chạy một lần, ngay tại phần cuối, để tắt trình duyệt web. Tôi không muốn tắt trình duyệt web sau mỗi lớp/mô-đun. Tôi cũng không muốn nó không bao giờ bị đóng cửa. –
Sau đó, nó là khá dễ dàng: sử dụng ['atexit'] (http://docs.python.org/2/library/atexit.html) và đăng ký chức năng sẽ đóng firefox được thực hiện ngay trước khi thông dịch viên thoát. – Bakuriu