2016-01-05 15 views
8

Ho una funzione Swift per la quale Xcode mostra 0 passaggi nella copertura del codice. La linea è una parentesi di chiusura (evidenziata in rosso sotto).Perché una parentesi di chiusura non mostra copertura del codice?

Si tratta di un bug in Xcode? In caso contrario, quali condizioni devo colpire per eseguire quella linea? Pensavo di coprire tutti i percorsi attraverso questo metodo.

Code with un-covered line

+0

Hai mai escogitato un modo per mettere a tacere questo problema con Xcode? –

+0

@AdamJohns Non l'ho visto succedere di recente - ma non ho lavorato su questo codice per un po 'di tempo. Lo stai ancora vedendo con Xcode 8? – Dov

risposta

0

rapporti Xcode includono misure per parentesi finale, che non è in genere desiderati. Non c'è nulla che tu possa fare nella configurazione per risolvere questo problema (per quanto ne so).

(FD Lavoro in Codecov) È possibile utilizzare Codecov, una soluzione ospitata, che rimuoverà automaticamente queste righe aggiuntive. Ulteriori informazioni allo https://github.com/codecov/example-xcode. Grazie :)

+3

Ma allora perché non sta succedendo questo ovunque? La maggior parte delle mie lezioni e funzioni sono coperte al 100% – Dov

+2

Ottima domanda, sfortunatamente non ho una risposta. –

+0

Sono curioso anche di questo. – JerryZhou

0

Abbastanza sicuro che si tratti di un bug (funzionalità?) Di copertura del codice Xcode. Il problema si riduce all'istruzione return che non consente di cadere nell'istruzione else vuota, indicando quindi che il codice non viene eseguito. Le dichiarazioni sul reso generano una chiave in ciò che stanno facendo per contare le righe di codice.

Nell'istanza del blocco try/catch, non c'è molta scelta per impedire l'esecuzione vuota.

Come esperimento, rimuovere l'istruzione return e trovare un modo migliore per catturare l'istruzione writeToURL in modo che non venga eseguita in un'istruzione error/catch. Questo probabilmente ti darà una copertura del codice pulita per quella linea.

Problemi correlati