4 Stimmen

Wie kann ich eine Einrichtungsfunktion für alle nosetests-Tests definieren?

Ich benutze Google App Engine mit Python und möchte einige Tests mit Nosetests durchführen. Ich möchte, dass jeder Test die gleiche Setup-Funktion ausführt. Ich habe bereits viele Tests, daher möchte ich nicht alle durchgehen und die gleiche Funktion kopieren und einfügen. Kann ich irgendwo eine Setup-Funktion definieren, die jeder Test zuerst ausführt?

Danke.

4voto

Bakuriu Punkte 91990

Sie können Ihre Setup-Funktion schreiben und sie mit dem with_setup Decorator anwenden:

from nose.tools import with_setup

def my_setup():
   ...

@with_setup(my_setup)
def test_one():
    ...

@with_setup(my_setup)
def test_two():
    ...

Wenn Sie dieselbe Einrichtung für mehrere Testfälle verwenden möchten, können Sie eine ähnliche Methode verwenden. Zuerst erstellen Sie die Setup-Funktion und wenden sie dann auf alle TestCases mit einem Decorator an:

def my_setup(self):
    #die Einrichtung für den Testfall durchführen

def apply_setup(setup_func):
    def wrap(cls):
        cls.setup = setup_func
        return cls
    return wrap

@apply_setup(my_setup)
class MyTestCaseOne(unittest.TestCase):
    def test_one(self):
        ...
    def test_two(self):
        ...

@apply_setup(my_setup)
class MyTestCaseTwo(unittest.TestCase):
    def test_one(self):
        ...

Oder eine andere Möglichkeit könnte sein, einfach Ihr Setup zuzuweisen:

class MyTestCaseOne(unittest.TestCase):
    setup = my_setup

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X