Ich habe ein sehr merkwürdiges Verhalten von Nasetests beobachtet, wenn das @ mock.patch.object verwendet wurde Funktion:Das Ausführen von mehreren Tests verursacht Interferenzen in Nasetests beim Patchen mit @ mock.patch.object und manchmal auch bei der Verwendung von `mit mock.patch.object`
Wenn ich mehrere Tests gleichzeitig ausführe, erhalte ich andere Ergebnisse als wenn ich sie einzeln ausführe. Insbesondere scheint es, dass die Überschreibung mit @ mock.patch.object in bestimmten Fällen keine Wirkung hat, wenn ich mehrere Nasetests gemeinsam ausführe. Wenn ich den Patch mit with
anwende, tritt dieses Problem nicht auf.
@patch.object(ObjectToOverride,....)
def test_mytest()
# check the override
Wenn die with
Methode verwendet werden, um den Patch, nachfolgende Tests anzuwenden nicht von früheren Tests betroffen.
Alle Vorschläge, die dieses Verhalten verursachen könnten, werden geschätzt.
Wenn ich mehrere Tests ausführen, wird das ObjectToOverride geladen und von vorherigen Tests verwendet. Aber ich verstehe nicht, warum die Verwendung von with oder decorator einen Unterschied macht, ob das Objekt danach noch gepatcht werden kann.
In beiden Fällen kann ich einige Interferenz zwischen den Tests beobachten. Wie kann dies im Nasstest vermieden werden?
Wenn Sie ein konkretes Beispiel für Code bereitstellen könnten, der diesen Fehler reproduziert, wäre es hilfreich. So wie es ist, kann ich das Problem nicht reproduzieren und kann nicht wirklich helfen. – Grr