Tôi đang sử dụng py.test để kiểm tra một số mã DLL được bao bọc trong một lớp python MyTester. Để xác thực mục đích, tôi cần đăng nhập một số dữ liệu thử nghiệm trong quá trình thử nghiệm và thực hiện nhiều thao tác sau đó. Vì tôi có nhiều tệp thử nghiệm _... tôi muốn sử dụng lại việc tạo đối tượng thử nghiệm (ví dụ của MyTester) cho hầu hết các thử nghiệm của tôi.py.test: Chuyển một tham số đến hàm cố định
Khi đối tượng thử nghiệm là đối tượng có tham chiếu đến các biến và hàm của DLL, tôi cần chuyển danh sách các biến của DLL cho đối tượng thử nghiệm cho từng tệp kiểm tra (các biến được ghi là giống nhau cho một tập tin thử nghiệm _...). Nội dung của danh sách sẽ được sử dụng để ghi dữ liệu được chỉ định.
Ý tưởng của tôi là để làm điều đó bằng cách nào đó như thế này:
import pytest
class MyTester():
def __init__(self, arg = ["var0", "var1"]):
self.arg = arg
# self.use_arg_to_init_logging_part()
def dothis(self):
print "this"
def dothat(self):
print "that"
# located in conftest.py (because other test will reuse it)
@pytest.fixture()
def tester(request):
""" create tester object """
# how to use the list below for arg?
_tester = MyTester()
return _tester
# located in test_...py
# @pytest.mark.usefixtures("tester")
class TestIt():
# def __init__(self):
# self.args_for_tester = ["var1", "var2"]
# # how to pass this list to the tester fixture?
def test_tc1(self, tester):
tester.dothis()
assert 0 # for demo purpose
def test_tc2(self, tester):
tester.dothat()
assert 0 # for demo purpose
Có thể đạt được nó như thế này hoặc là có ngay cả một cách thanh lịch hơn?
Thông thường tôi có thể làm điều đó cho mỗi phương pháp thử nghiệm với một số loại chức năng thiết lập (xUnit-style). Nhưng tôi muốn đạt được một số loại tái sử dụng. Có ai biết nếu điều này là có thể với đồ đạc ở tất cả?
Tôi biết tôi có thể làm điều gì đó như thế này: (từ các tài liệu)
@pytest.fixture(scope="module", params=["merlinux.eu", "mail.python.org"])
Nhưng tôi cần đến parametrization trực tiếp trong các mô-đun thử nghiệm. Có thể truy cập thuộc tính params của vật cố từ mô-đun thử nghiệm không?
Cảm ơn gợi ý với hàm bên trong lịch thi đấu. Đã mất một thời gian cho đến khi tôi có thể làm việc trên này một lần nữa nhưng điều này là khá hữu ích! – maggie