Bis etwas zum Meister wird
Normalerweise richte ich mein CI so ein, dass es bei jedem einzelnen Commit ausgeführt wird. Zweige werden erst mit dem Master zusammengeführt, wenn der Zweig getestet wurde. Wenn Sie Tests auf dem Master ausführen möchten, wird ein Fenster geöffnet, in dem der Build unterbrochen werden kann.
Bei der Ausführung der Tests auf einem CI-Computer geht es um reproduzierbare Ergebnisse. Da der CI-Server eine bekannte saubere Umgebung aufweist, die von Ihrem VCS abgerufen wurde, wissen Sie, dass die Testergebnisse korrekt sind. Bei lokaler Ausführung können Sie möglicherweise vergessen, den für die Übergabe erforderlichen Code festzuschreiben, oder nicht festgeschriebenen Code, der die Übergabe veranlasst, wenn sie fehlschlagen sollten.
Außerdem können die Entwickler Zeit sparen, indem verschiedene Suites parallel ausgeführt werden, insbesondere wenn es sich um langsame, mehrminütige Tests handelt, die nach jeder Änderung wahrscheinlich nicht lokal ausgeführt werden.
Bei meiner aktuellen Arbeit wird unser Produktionseinsatz darauf ausgerichtet, dass CI alle Tests besteht. Die Bereitstellungsskripts verhindern die Bereitstellung, sofern sie nicht übergeben werden. Dies macht es unmöglich, versehentlich zu vergessen, sie auszuführen.
Da ich Teil des Workflows bin, werden auch die Entwickler entlastet. Führen Sie als Entwickler in der Regel bei jeder Änderung einen Linter-, Static-Analyzer-, Unit-Test-, Code-Coverage- und Integrationstest durch? Ich kann, ganz automatisch und ohne darüber nachdenken zu müssen - das reduziert die Entscheidungsermüdung.