Il mio progetto si rivolge a un dispositivo embedded a basso costo e con risorse limitate. Sono dipendente da una base di codice Python relativamente ampia e ampia, di cui il mio uso delle sue API è piuttosto specifico.Utilizzo dello strumento di copertura del codice Python per la comprensione e l'eliminazione del codice sorgente di una grande libreria
Sono pronto a potare il codice di questa libreria al suo minimo indispensabile, eseguendo la mia suite di test nel giro di strumenti di copertura come Ned Batchelder copertura o foglia di fico, quindi scripting rimozione di codice non utilizzato all'interno della vari moduli/file. Ciò aiuterà non solo a comprendere le parti interne delle librerie, ma anche a rendere più facile la scrittura di eventuali patch. Ned in realtà si riferisce all'uso di strumenti di copertura per "decodificare" codice complesso in uno dei suoi discorsi online.
La mia domanda alla comunità SO è se le persone hanno l'esperienza di utilizzare gli strumenti di copertura in questo modo che a loro non dispiacerebbe condividere? Quali sono le eventuali insidie? Lo strumento di copertura è una buona scelta? O sarebbe meglio investire il mio tempo con figleaf?
Il fine del gioco è quello di essere in grado di generare automaticamente un nuovo albero dei sorgenti per la libreria, sulla base del albero originale, ma solo compreso il codice effettivamente utilizzato quando corro nosetests.
Se qualcuno ha sviluppato uno strumento che svolge un lavoro simile per le proprie applicazioni e librerie Python, sarebbe fantastico ottenere una base da cui iniziare lo sviluppo.
Spero che la mia descrizione ha un senso per i lettori ...
È necessario disporre di serie di test davvero completa, o si rischia di sfoltire l'unica funzione che i test non hanno chiamato, ma è necessaria in alcune circostanze esotiche ma reali. Mi preoccuperei * duramente * di questo, perché è molto difficile raggiungere il 100% di copertura del test. Sei sicuro che i tuoi test siano completi? Sistema integrato: stai testando "memoria insufficiente"? –
.... Ned potrebbe avere referenziato la copertura di test per "capire", ad esempio, trovare il codice relativo a una specifica funzionalità, e va bene, ma non è la stessa cosa che trovare * tutti * pezzi di funzionalità-supporto codice. –