Usiamo (e amiamo) la struttura di test del jest. La maggior parte dei nostri test sono dei bei test unitari in stile codice buono-igienici compartimentati.
Tuttavia abbiamo anche scritto alcuni test di livello di servizio (impostazione di server e richieste di rilascio) e anche alcuni test di implementazione più lunghi per testare l'automazione della distribuzione dello stack. Questi sono separati in modo tale che la maggior parte delle volte esegui solo i primi test di unità, ma quando è necessario puoi invocare (o CI può) gli altri test più lunghi.
Configurare questi tipi di test di integrazione può essere complicato poiché a volte è necessario aggirare (o modificare) le limitazioni degli strumenti che si stanno utilizzando e testare, tuttavia, una volta ottenuto un buon modello, non male.
Ora che molte di queste cose sono state configurate - sto avendo questa pazza idea che forse dovrei usare il nostro framework di test per eseguire effettivamente il processo di distribuzione di produzione stesso ... In questo modo la logica di distribuzione reale più esattamente corrisponde al test di quella logica. Nella misura in cui l'implementazione effettiva comporta il concatenamento di vari componenti e strumenti, perché non esprimerlo in modo tale da consentire di sfruttare facilmente il codice proveniente dal resto del progetto. E la logica necessaria per testare correttamente le variazioni del processo di distribuzione può essere direttamente riutilizzata per eseguire realmente l'implementazione della vita reale e mantenere centralmente / verificati tutti i parametri di configurazione richiesti in un modo davvero piacevole. Inoltre, le istantanee possono essere utilizzate per affermare tutti i tipi di aspettative sull'ambiente di distribuzione e prevenire ogni sorta di fonti impreviste di variazione ...
Questa idea sembra pazzesca? Sono davvero tentato di provarlo ... Qualcuno l'ha già fatto prima?