2013-10-01 20 views
10

Używam gcovr do generowania kodu dla kobertury. Wszystko działało poprawnie z kodem Xcode 4.6. Teraz zaktualizowana xcode5 i wszystko, co się ma zasięg 0% ...kod zasięgu gcovr i Xcode 5 nie działa

moja konfiguracja:

  • gcovr 3,0
  • Xcode 5 (Apple LLVM 5)
  • 'Generowanie test zakresu Files' jest ustawiona na Tak
  • „instrument Programu przepływu” jest ustawiona na TAK

i dowodzić używam:

gcovr -r . --object-directory Build/Intermediates/myApp.build/Debug-iphonesimulator/myApp.build/Objects-normal/i386 --exclude '.*Tests.*' --exclude '.*KiwiUnitTest' --exclude '.*main.*' --xml > reports/coverage.xml 

Czy ktoś ma ten sam problem lub lepszy, ma rozwiązanie? :)

+3

Możliwy duplikat pokrycia kodu Xcode5 (z wiersza cmd dla kompilacji CI)] (http://stackoverflow.com/questions/18394655/xcode5-code-coverage-crom-cmd-line-for-ci-builds) –

+0

Nie, to NIE jest dupe. Sugestia autorstwa @GardnerBickford odnosi się do generowania plików .gcno/.gcda. TO pytanie dotyczy użycia (i nieprawidłowego działania) gcovr. – Rayfleck

+0

@Rayfleck przeczytaj ponownie to pytanie, a także odpowiedź [Pokrycie kodu Xcode5 (z wiersza cmd dla kompilacji CI)] (http://stackoverflow.com/questions/18394655/xcode5-code-coverage-crom-cmd- line-for-ci-builds) Powodem, dla którego gcovr nie działa po aktualizacji do Xcode 5, jest to, że kompilator Xcode 5 nie opróżnia plików gcno/gcda na dysk. ** Bez tych plików gcovr zgłosi brak zasięgu. ** –

Odpowiedz

3

A teraz znowu działa ... :)

jak @kenji powiedział Xcode 5.1 rozwiązuje ten problem. thx btw

tu jest moje środowisko pracy i konfiguracja dla tego, kto interesuje

  • Xcode 5.1.1 (z AppStore)
  • gcovr 3.1-prerelease (instalowane z easy_install)

iw moim projekcie pod tytułem 'Budowanie Ustawienia' ustawić następujące:

  • Wygeneruj test zakresu Files "jest ustawiona na TAK
  • „Program Instrument przepływ”jest ustawiona na TAK

po I uruchomić testy, I wykonać następujące polecenie: (dzieje się z Jenkins)

Wykonano

.

Przepraszam was za czekanie na odpowiedź i dziękuję wszystkim za pomoc.

0

Najpierw upewnij się, że utworzyłeś pliki .gcda i .gcno!

(Sprawdź: ~/Library/Developer/Xcode/DerivedData/{YOUR-PROJECT-NAME}/Build/Intermediates/{YOUR-PROJECT-NAME} .build/Debug-iphonesimulator/{YOUR-PROJECT-NAME} .build/Obiekty normalny/i386)

Jeśli zostały one pomyślnie utworzony trzeba wykonać następujące czynności: (Jeśli nie sprawdzić komentarze pod swoje pytanie)

  1. Skopiowanie wszystkich plików z folder i386 (pełna ścieżka opisana powyżej) w twoim obszarze roboczym gdzie znajdują się twoje pliki .h i .m.

  2. zacisk run i zmienić ci nadrzędnego katalogu roboczego do obszaru roboczego

    cd [YOUR WORKSPACE PATH] 
    
  3. run gcovr

    gcovr -r . --xml > reports/coverage.xml 
    

Jeśli używasz Jenkins (co zakładam) to będzie twój dalsze kroki: Generating gcda files to view the code-coverage from XCTests in IOS with Jenkins

Daj mi znać, jeśli nadal masz pytania!

+0

Wygląda na to, że najnowsza wersja gcovr (v3.2) nie przetworzy żadnych plików, jeśli zdefiniujesz katalog --object. Tylko przez skopiowanie plików .gcno i .gcna do ścieżki określonej przez parametr -r będzie działać. https://github.com/gcovr/gcovr/issues/61 –