pytest: Wie ein Klassenparameter an setup_class übergeben wird

Ich benutze die parametrisierbaren Annotationen von pytest, um Parameter in eine Klasse zu übergeben. Ich kann die Parameter in den Testmethoden verwenden, kann jedoch nicht herausfinden, wie die Parameter in der setup_class-Methode verwendet werden.

import pytest

params = ['A','B','C']

@pytest.mark.parametrize('n', params)
class TestFoo:

    def setup_class(cls):
        print ("setup class:TestFoo")
        # Do some setup based on param

    def test_something(self, n):
        assert n != 'D'

    def test_something_else(self, n):
        assert n != 'D'

Ich habe versucht, 'n' als Parameter wie die folgenden Testmethoden hinzuzufügen:

def setup_class(cls, n):
        print ("setup class:TestFoo")
       # Do some setup based on param

Was zu einem Fehler führt:

self = <Class 'TestFoo'>

    def setup(self):
        setup_class = xunitsetup(self.obj, 'setup_class')
        if setup_class is not None:
            setup_class = getattr(setup_class, 'im_func', setup_class)
            setup_class = getattr(setup_class, '__func__', setup_class)
>           setup_class(self.obj)
E           TypeError: setup_class() takes exactly 2 arguments (1 given)

Gibt es eine andere Möglichkeit, den Parameter in der setup_class-Methode zu verwenden?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage