Best Practices für das Schreiben parallel Unit-Tests
-
06-07-2019 - |
Frage
Ich suche in parallele Unit-Tests für unser Projekt (en) aufnehmen und wundere mich über alle Best Practices für die tatsächlich solche parallelen Unit-Tests zu schreiben.
Lösung
Wenn durch parallele Unit-Tests Sie Tests bedeuten, die gleichzeitig ausgeführt werden können, die wichtigste Rat, den ich geben kann Ihnen zu vermeiden, ist die so genannte Gemeinsame Fixtures.
Das Buch xUnit Testmuster den Begriff Fixture zu beschreiben, die grundsätzlich sein beschrieben als der gesamte Kontext, in dem jeder Testfall, einschließlich persistenten und transienten Daten ausführt .
Eine gemeinsame Fixture zeigt an, dass Testfälle einige Kontexte teilen beim Laufen. Wenn das Kontext wandelbar ist, Rennbedingungen auftreten können.
Halten eines freigegebenen Fixture unveränderlich (eine so genannte Immutable Geteilt Fixture) ermöglicht es Ihnen, Tests parallel zu laufen, aber noch besser, so genannte Frische Fixtures (wobei jeder Testfall seine eigene Fixture hat) sind Thread-sicher durch Definition, da nur der Testfall selbst Zugriff auf die Fixture hat.
Beispiele für Geteilt Befestigungen umfassen jede Art von Test, der eine gemeinsame Datenbank verwenden, aber auch Tests gehören, wo man statischen In-Memory-in-Zustand hat entweder das System Under Test (SUT) oder die Tests selbst, so müssen Sie vermeiden, dass .
Sie sollten auch bedenken, dass, wenn Ihr SUT (statisch) gemeinsam genutzte Daten-Zugriffe, dass der Zugang selbst Thread-sicher sein muss.
Andere Tipps
Einige interessante Links für Sie:
Es gibt einige interessanten Antworten in diesen Stackoverflow Fragen. Hoffe, dass dies helfen wird.