Ich verwende Unittest und Nose-parametrized, und möchte verschiedene Dekoratoren auf einen Test basierend auf einer Bedingung anwenden.Anwenden von verschiedenen Dekoratoren basierend auf einer Bedingung
Ich habe einen Test und ich möchte unittest.skip
den Test überspringen oder @parameterized.expand(args)
basierend auf den Argumenten an Argumenten übergeben.
Ich denke, ich brauche einen anderen Dekorateur, der richtige Dekorateur auf den Test anwendet, aber jetzt sicher wie.
Pseudo-Code könnte so etwas wie dieses:
@validate_data(args)
def test(args):
...
wo @validate_data(args)
ein Dekorateur ist die unittest.skip
gilt, wenn args == None oder @parameterized.expand(args)
sonst
Alle Kommentare/Vorschläge geschätzt.
Weil 'parameterized.expand' böse tut' inspect.stack' Magie, die Sie benötigen eine Funktion zurück, die aus der Klasse Definition aufgerufen werden, und nicht in einer anderen Funktion. Ich habe deine Antwort aktualisiert, damit es funktioniert. –
@DavidWolever, ah! Vielen Dank. Ich wusste nicht, was diese Funktion hat :) – ashwinjv