Wir bauen derzeit unseren Build-Prozess in einer automatisierten, kontinuierlichen Integrationsumgebung auf und stellen uns der fundamentalen Frage, wann Unit-Tests durchgeführt werden sollen.Wann werden Komponententests ausgeführt?
Eine Möglichkeit wäre, den Komponententest mit jeder Build-Task auszuführen. Sobald also ein Komponententest fehlschlägt, schlägt der gesamte Build fehl. Dies hat den Vorteil, dass der Entwickler immer gezwungen ist, die Unit-Tests grün zu halten, da er sonst die Applikation nicht ausführen kann. Auf der anderen Seite sind Sie immer abgelenkt, wenn Sie die Tests während eines Entwicklungsprozesses reparieren - was Sie zwingt, in sehr kleinen Iterationen zu arbeiten. Außerdem wird die Zeit für die Ausführung Ihrer Anwendung immer größer, da Sie jedes Mal auf die Tests warten müssen. Der andere Weg wäre, den CI-Server nach jedem neuen Commit die Tests durchführen zu lassen und den Entwickler einfach wissen zu lassen, dass etwas schief gelaufen ist. Auf diese Weise ist der Entwickler ziemlich frei, wann er sich um die Komponententests kümmern muss, aber auch andere Entwickler in der gleichen Branche können darunter leiden, weil sie nicht sicher sein können, dass alle Teile der Software wie erwartet funktionieren und überprüft werden müssen selbst, wenn die versagenden Tests auch ihre Arbeit beeinflussen könnten.
Haben Sie also Best Practices oder Empfehlungen, was wäre eine gute Zeit, um die Tests durchzuführen?
BTW: natürlich laufen auch größere Integrationstests, die in einem separaten CI-Prozess abgewickelt werden.
Beide oben. – kryger