2012-01-30 13 views
5

Mi impegno ogni volta che apporto alcune modifiche che penso che potrebbe essere lavoro: non eseguo test approfonditi prima di un commit. Inoltre, i miei commit saranno automaticamente pushed to a remote repository. (Sono l'unico sviluppatore e devo aggiungere funzionalità o riscrivere parti del codice più volte al giorno.)mercurial: esegue automaticamente test di regressione remota su ogni commit

Vorrei installare un computer remoto per eseguire automaticamente i test di regressione ogni volta che commetto qualcosa; e poi mandami una email con il rapporto sulle differenze.

Qual è il modo più semplice per configurarlo?

Tutto il mio codice è in Python 3. Il mio sistema è Windows 7, ActiveState Python, TortoiseHG e Wing IDE. Posso configurare il computer remoto come Linux o Windows. L'applicazione è tutta a riga di comando, con input e output di testo.

risposta

6

Utilizzare un server di integrazione continuo come Buildbot o Jenkins e configurarlo per monitorare il repository. Quindi esegui i test usando quello. Buildbot è scritto in Python quindi dovresti sentirti a casa con esso.

Se si sente che è uno spreco di fare Buildbot o Jenkins polling repository (anche se hg pull utilizza pochissime risorse quando non sono presenti nuovi gruppi di modifiche), quindi è possibile configurare un gancio changegroup nel repository per innescare un accumulo nel CI server.

+1

Gestiamo TeamCity, un altro grande server di integrazione continua. – StrangeWill

+1

@StrangeWill: ho sentito cose positive su TeamCity, ad esempio che può pianificare build sull'agente che ha già un clone più simile al clone upstream, in modo che 'hg pull' sia veloce per il client. Mi sono concentrato sugli strumenti open source nella mia risposta poiché è quello che ho più esperienza con me stesso. –

2

Si consiglia di impostare Buildbot. Puoi farlo guardare un repository remoto (Mercurial è supportato) e avviare automaticamente una build quando il repository cambia. Nel tuo caso, una build eseguirà solo la tua suite di test.

Il display a cascata consente di vedere quali build fallite e quando, in relazione ai commit dal repository. Può anche avvisarti, con il commit incriminato, quando qualcosa si rompe.

Jenkins è un'altra opzione, che supporta la maggior parte delle stesse funzionalità. Esistono anche opzioni di hosting cloud, come ShiningPanda che possono ospitarla per te e offrono licenze gratuite per progetti open-source.

Problemi correlati