Mi piace aprire un secondo terminale, accanto al mio editor, in cui eseguo solo un ciclo che esegue nuovamente nosetests (o qualsiasi comando di test, ad esempio semplici vecchi unittests) ogni volta che un file i cambiamenti. Quindi puoi mantenere l'attenzione nella finestra dell'editor, mentre vedi l'output di test aggiornato ogni volta che premi "salva" nel tuo editor.
Non sono sicuro di cosa significhi OP con 'drill down', ma personalmente tutto ciò di cui ho bisogno dall'output di test è il traceback di errore, che ovviamente viene visualizzato ogni volta che un test fallisce.
Ciò è particolarmente efficace quando il codice e i test sono ben scritti, in modo che la maggior parte dei test richieda solo millisecondi.Potrei eseguire questi veloci test unitari in un ciclo come descritto sopra mentre eseguo il montaggio o il debug, quindi eseguo manualmente i test più lunghi alla fine, appena prima di eseguire il commit.
è possibile ri test eseguiti manualmente con 'orologio' Bash (ma questo solo loro ogni X secondi viene eseguito. Il che va bene, ma non è abbastanza scattante per mantenere me felice.)
In alternativa ho scritto un rapido pacchetto python 'rerun', che esegue il polling delle modifiche al filesystem e quindi ripete il comando che gli viene dato. Il polling per le modifiche non è l'ideale, ma è stato facile da scrivere, è completamente multipiattaforma, è abbastanza scattante se lo comunichi per interrogare ogni 0,25 secondi, non mi provoca alcun ritardo evidente o carico di sistema anche con progetti di grandi dimensioni (ad esempio Python albero dei sorgenti), e funziona anche in casi complicati (vedi sotto.) https://pypi.python.org/pypi/rerun/
una terza alternativa è quella di utilizzare un più generico 'aspettare cambiamenti filesystem' programma come 'cane da guardia', ma questo sembrava pesi massimi per le mie esigenze, e soluzioni come questa che ascoltano gli eventi del filesystem a volte non funzionano come mi aspettavo (per esempio se Vim salva un file salvando un tmp da qualche altra parte e poi spostandolo in posizione, gli eventi che accadono qualche volta non sono quelli che ti aspetti.) Quindi 'rerun'.
fonte
2014-01-20 12:36:43