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.

War es hilfreich?

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:

Unit Tests Organisieren

Lauf Unit Tests in Parallel

Es gibt einige interessanten Antworten in diesen Stackoverflow Fragen. Hoffe, dass dies helfen wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top