Tôi đang cố gắng tạo một lớp Cơ sở với các thiết lập khác nhau mà tôi cần cho các thử nghiệm của mình. Tôi muốn tất cả các bài kiểm tra của mình được kế thừa từ lớp Cơ sở này. Là Á hậu, tôi sử dụng py.test.py.test không thu thập các thử nghiệm không được kế thừa từ 'đối tượng'
Nhưng khi tôi cố gắng làm như vậy, py.test không thu thập các thử nghiệm này được kế thừa từ Lớp cơ sở và kết quả là nó không chạy chúng. Không tìm thấy bất kỳ thông tin hữu ích nào trong tài liệu.
Có thể ai đó đã gặp phải các vấn đề như vậy trước đây? Bất kỳ ý tưởng?
Cảm ơn.
P.S. Khi thử nghiệm được kế thừa từ đối tượng mọi thứ hoạt động tốt. Py.test nhìn thấy chúng và chạy một cách chính xác.
Ví dụ mã:
lớp cơ sở của tôi:
class BaseClass(object):
"""BaseClass"""
def __init__(self):
super(BaseClass, self).__init__()
self.bla = 'bla'
class Test My:
import pytest
from base_class import BaseClass
class TestSmth(BaseClass):
def test_test(self):
test_instatnce = TestSmth()
print test_instatnce.bla
if __name__ == '__main__':
pytest.main([__file__, '-v'])
Output:
============================= test session starts ==============================
platform darwin -- Python 2.7.2 -- pytest-2.3.3 -- /usr/bin/python
collecting ... collected 0 items
=============================== in 0.01 seconds ===============================
[Finished in 0.4s]
Alex, Cảm ơn! Đó là chính xác những gì tôi cần! –
Các chức năng cố định được sắp xếp theo phạm vi, vì vậy tất cả các đồ đạc có phạm vi lớp sẽ thực thi trước các hàm được sắp xếp theo hàm. Trong mỗi phạm vi thứ tự không được xác định, có thể là chữ cái nhưng điều đó sẽ là ngẫu nhiên. – hpk42
@ hpk42, Chữ cái trong bảng chữ cái trong một lớp. :) Bạn có thể thử nó cho chính mình: https://bitbucket.org/alex_okrushko/pytest-class-init-order/commits/e3f316d6597c57e22a82362643197140 –