Domanda

Quando si lavora su progetti più grandi, possono essere necessari almeno 10 secondi per compilare e avviare il framework di test unitari. Esistono modi efficaci per ridurre i tempi del circuito di feedback? Ho intenzione di apportare solo piccole modifiche in una classe di test unitaria e un'altra classe tra le corse di prova.

Ho considerato alcuni altri approcci. Non vedo alcun modo per compilare ed eseguire una singola classe di test e dipendenze. Potrei aumentare il numero di progetti nella soluzione in modo che ogni assemblaggio richieda meno tempo per compilare, ma ciò causa altri problemi. NCRUNCH sembra ridurre la necessità di eseguire manualmente i test, ma compila comunque assemblaggi completi.

Chiarimento: i 10 secondi includevano il tempo per compilare la classe di test unitaria e la classe in esame. Il mio problema con Ncrunch potrebbe essere stato a causa di un computer meno potente.

È stato utile?

Soluzione

Dovresti mettere ogni classe di test in un gruppo separato: un gruppo è effettivamente l'unità di compilazione. Se ci vogliono 10 secondi per ricompilare Appena Una modifica a una classe di test, che suggerisce che o hai troppi test in un gruppo o hai una macchina molto lenta. Potrebbe essere che ottenere una macchina migliore (o migliorare quella esistente con più memoria o SSD) sia il modo migliore per andare avanti.

Uso Ncrunch da solo e, sebbene compilasse ancora assemblee complete, il fatto che lo stia facendo in background significa che di solito quando ho fatto un respiro mentale, i test si sono ricostruiti e stanno funzionando. NCRUNCH funziona bene se hai più processori e un Ramdisk, a proposito: puoi impostare dove si basa e anche quanti processori può usare.

Se solo tu considerato Ncrunch (o Il potente alce ecc - roba simile) ma in realtà non ci provati, dovresti provarlo prima supponendo che non sarà abbastanza veloce per te.

Altri suggerimenti

Potresti controllare Autotest.net, che è un componente aggiuntivo per Visual Studio che esegue i test delle unità in background mentre scrivi il tuo codice.

In questo modo puoi trattare i test unitari più come errori / avvertimenti del compilatore e ottenere un feedback relativamente in tempo reale.

I test delle unità dichiarativi azzerebbero effettivamente il tempo di compilazione, ma solo se la tua architettura lo consente. Ad esempio, spostare i test unitari sul database ha funzionato bene per noi in un progetto su larga scala.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top