Domanda

Ho un applicazione Cocoa che utilizza un programma di installazione. Voglio essere in grado di eseguire la copertura del codice sul codice (dopo che è stato installato).

Questo non è il solito unità-test scenario in cui un singolo binario verrà eseguito una serie di test. Piuttosto, le prove in questione potranno interagire con l'interfaccia utente e l'applicazione di back-end mentre è in funzione, in modo che idealmente voglio essere in grado di avviare l'applicazione sapendo che gcov è profiling e poi eseguire test contro di esso.

Tutte le idee?

Aggiorna

Grazie a mustISignUp. Per chiarire il motivo per cui ho fatto la domanda:

L'errore che ho fatto è stato pensare che l'oggetto, .gcno e .gcda file doveva essere installato a fianco dei binari (rendendo così il programma di installazione difficile). Come spesso accade, la posizione originale dei file è hard-wired nel codice insieme al codice strumentazione.

La soluzione sono andato con è zippare il codice sul sistema di compilazione e metterlo su disco sulla macchina di prova. lcov (o semplicemente gcov) possono essere eseguiti da lì. In alternativa, verranno creati i file .gcda su disco e devono essere copiati indietro fino alla macchina che contiene il codice sorgente.

In entrambi i casi, il codice sorgente non deve essere presente durante l'installazione e la fase di esecuzione, ma se si vuole per ottenere i risultati indietro lcov stile, i file contatore copertura prodotte deve conciliarsi con il codice sorgente.

È stato utile?

Soluzione

L'applicazione deve essere compilato con le bandiere del CCG corrette che inserire le istruzioni di profilazione nel codice. Non è qualcosa che si può accendere e spegnere. vale a dire il codice viene modificato in fase di compilazione per emettere le informazioni di copertura.

Quindi, se è stato compilato l'applicazione con le bandiere giuste emetterà i dati di copertura, se non l'avete fatto, non lo farà (e certamente non vorrebbe a per un app che stavi per la distribuzione).

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