2016-09-24 10 views
12

Czy istnieje sposób, aby wykluczyć kapsuły z pokrycia kodu?
Chciałbym zobaczyć zasięg kodu tylko dla kodu, który napisałem.Jak wykluczać kapsuły z pokrycia kodu w Xcode

Nie, że powinna ona znaczenia, ale używam Xcode 8.

+0

Podobne pytanie tutaj: http://stackoverflow.com/questions/40102012/code-coverage-with- cocopods-libary-ios-unit-test –

Odpowiedz

12

Te kroki pomogą:

1. dodać te linie do Podfile

# Disable Code Coverage for Pods projects 
post_install do |installer_representation| 
    installer_representation.pods_project.targets.each do |target| 
     target.build_configurations.each do |config| 
      config.build_settings['CLANG_ENABLE_CODE_COVERAGE'] = 'NO' 
     end 
    end 
end 

2. run pod install

Teraz nie zobaczysz kapsuł w pokryciu testowym.

Uwaga: Wyklucza jedynie Objective-C strąków, ale nie Swift

+0

Fab rozwiązanie dzięki! w jaki sposób można wykluczyć pliki "C", jeśli istnieją również w zasobnikach? – DrPatience

3
  1. Kliknij projektu Pods w projekcie Navigator na lewym
  2. na prawej stronie, otwarty projekt i listy docelowej jeśli nie jest jeszcze otwarty; następnie kliknij nazwę projektu Pods (NIE cele).
  3. Kliknij Ustawienia kompilacji.
  4. W pasku wyszukiwania wyszukaj "CLANG_ENABLE_CODE_COVERAGE".
  5. Zmień "Włącz obsługę pokrycia kodu" na NIE.
  6. Ponownie wykonaj test.
+3

Nie powinieneś nigdy zmieniać projektu Pods, ponieważ te ustawienia zostaną utracone podczas następnej 'instalacji pod/aktualizacji'. Rozwiązanie @ tung-fam jest prawidłowym sposobem robienia tego. – Camsoft

1

Jeśli tworzysz strąk i chcą mieć pokrycia kodu tylko dla twoich:

# Disable Code Coverage for Pods projects except MyPod 
    post_install do |installer_representation| 
     installer_representation.pods_project.targets.each do |target| 
     if target.name == 'MyPod' 
      target.build_configurations.each do |config| 
      config.build_settings['CLANG_ENABLE_CODE_COVERAGE'] = 'YES' 
      end 
     else 
      target.build_configurations.each do |config| 
      config.build_settings['CLANG_ENABLE_CODE_COVERAGE'] = 'NO' 
      end 
     end 
     end 
    end