py.test: przekazuje parametr do funkcji urządzenia

Używam py.test, aby przetestować kod DLL zawinięty w klasę Pythona MyTester. Aby potwierdzić cel, muszę zalogować się do niektórych danych testowych podczas testów i wykonać dalsze przetwarzanie. Ponieważ mam wiele plików testowych _..., chcę ponownie użyć tworzenia obiektów testera (instancji MyTester) dla większości moich testów.

Ponieważ obiekt testera jest tym, który ma odniesienia do zmiennych i funkcji DLL, muszę przekazać listę zmiennych DLL do obiektu testera dla każdego z plików testowych (zmienne, które mają być rejestrowane, są takie same dla testu_ .. plik). Zawartość listy służy do rejestrowania określonych danych.

Moim pomysłem jest jakoś to zrobić:

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

Czy można to osiągnąć w ten sposób, czy jest jeszcze bardziej elegancki sposób?

Zwykle mogłem to zrobić dla każdej metody testowej z jakąś funkcją konfiguracji (styl xUnit). Ale chcę uzyskać jakieś ponowne wykorzystanie. Czy ktoś wie, czy jest to możliwe w przypadku urządzeń?

Wiem, że mogę zrobić coś takiego: (z dokumentów)

@pytest.fixture(scope="module", params=["merlinux.eu", "mail.python.org"])

Ale potrzebuję parametryzacji bezpośrednio w module testowym.Czy można uzyskać dostęp do atrybutu params urządzenia z modułu testowego?

questionAnswers(3)

yourAnswerToTheQuestion