2012-01-20 27 views
12

Il mio progetto corrente ha una politica di copertura del 100% del codice dai suoi test unitari. Il nostro servizio di integrazione continua non consentirà agli sviluppatori di inviare codice senza copertura al 100%.Test unità distribuito e copertura del codice in Python

Poiché il progetto è cresciuto, così ha il tempo di eseguire l'intera suite di test. Mentre gli sviluppatori tipicamente eseguono un sottoinsieme di test relativi al codice che stanno cambiando, di solito eseguiranno un ciclo completo prima di inviarli a CI, e anche il server CI stesso eseguirà l'intera suite di test.

I test unitari per loro natura sono altamente parallelizzabili, poiché sono autonomi e stateless dal test al test. Restituiscono solo due informazioni: pass/fail e le righe di codice coperte. Una mappa/soluzione di riduzione sembra che funzionerebbe molto bene.

Esistono framework di test Python che eseguiranno test su un cluster di macchine con copertura del codice e combineranno i risultati al termine?

+0

Hai trovato qualcosa che fa quello che volevi? –

+0

@ stair314 Purtroppo no. Abbiamo acquistato un po 'più di tempo ottimizzando i nostri test unitari e tagliando fuori una grande quantità di lavoro non necessario. Abbiamo anche aggiunto delle macchine al nostro cluster CI in modo che possiamo costruire (e testare) in parallelo, ma eseguiamo comunque tutti i test ogni volta. Speriamo che ad un certo punto saremo in grado di concentrare alcuni sforzi di sviluppo su questo problema. –

risposta

4

Non conosco alcun framework di test che esegua test distribuiti da un gruppo di macchine, ma nose ha il supporto per il parallelismo dei test sulla stessa macchina utilizzando multiprocessing.

Al minimo che potrebbe essere un buon punto di partenza per creare un framework di test distribuita

1

Non esattamente quello che si sta guardando, ma il più vicino ho potuto ricordare è dai gruppi Hadoop è utilizza JUnit per il test con Hadoop . Ecco lo mail. Come accennato nella ricerca della posta per i documenti gridunit.

Il test dell'unità con Hadoop in modo distribuito è molto interessante. Qualsiasi quadro intorno a questo sarebbe molto utile, ma lo sviluppo di un quadro non dovrebbe essere molto difficile. Se interessati fammelo sapere

4

Penso che non ci sia una struttura che corrisponda esattamente alle vostre esigenze.

So che py.test ha il plugin xdist che aggiunge test executor distribuiti. Puoi usarlo per scrivere la tua infrastruttura CI su di esso.

+0

Il link è morto. –

+0

https://pypi.python.org/pypi/pytest-xdist – Twirrim