J'ai quelques cours d'UIView qui arrivent à la couverture même si. Je ne les ai pas ajoutés sous la cible de test de l'unité. Ni un test d'unité ni un test d'unité UI. Mais toujours ces fichiers montrant. p>
Je ne sais pas si ils sont inclus dans la couverture de test. p>
Q: Comment nous pouvons les supprimer d'une couverture de test unitaire? Q: Sont-ils impliqués dans le score de couverture de test unitaire? P>
Classe incluse dans la couverture des tests d'unité: P>
classes non ajoutées dans les objectifs de test: p>
5 Réponses :
Je pense que votre problème est lié à la couverture de code de collecte de code pour toutes cibles. p>
@testable Importation UnitestExamPlecodecoverage Code> Li>
-
Ajouter aux nouveaux fichiers cibles que vous souhaitez.
Dans mon exemple, proj j'ai: Appdelerate code>, ViewController code>, ViewController2 code>, ViewController3 code>, ViewController4 code >, Voir code>, View2 code>, View3 code>, View4 code>. J'ai ajouté à la nouvelle cible: Appdelegate code>, ViewController3 code>, ViewController4 code>, View3 code>, View4 code> Donc, seules ces cinq classes devraient être une base pour calculer la couverture du code. p> li>
-
Ajoutez des tests à vos cours. p> li>
-
Le rapport de couverture de code ne contient que des classes ajoutées à une nouvelle cible forte>. S'il vous plaît rappelez-vous que votre objectif principal peut être votre objectif principal - le nouveau n'est que la sorte de couche abstraite pour atteindre votre objectif: «Supprimer certaines classes du rapport de couverture de code». P> LI>
ol>
Voici tout le projet: https://github.com/mstaruchowicz/so55723759 P >
Tests heureux;) p>
Ouais encore si je sélectionne uniquement la cible de projet, ces fichiers UIView encore sont ajoutés dans le test.
C'est vrai, mais vous pouvez gérer vos objectifs par exemple. Ajoutez-en un de plus pour ne conserver que les classes aux tests et sur la base de la couverture du code calculer.
Mais cela ne donnera pas un rapport clair, ce qui ne sera pas spécifique aux fichiers de ne pas être cible de projet. n'est-ce pas?
Pourquoi pas clair? Votre objectif est d'avoir une couverture de code pour votre projet exclu certains uiview code> en fonction de cours, non? Donc, vous pouvez créer une nouvelle cible qui ne contient que des classes pour calculer la couverture du code. Ensuite, vous venez de définir une cible appropriée pour la couverture de code comme émission de tir à l'écran.
@Sandy j'ai ajouté plus d'informations comment atteindre votre objectif. J'espère que pour le moment est tout clair :)
Les captures d'écran contiennent mal orthographiés. Devrait être (...) Couverture Code> au lieu de
(...) Cachedge code>. Désolé.
Nice One, @mateusz! très détaillé :)
Lorsque vous êtes une couverture active dans votre projet, tous les fichiers de la cible calculeront la couverture. P>
Je vous recommande d'utiliser XCOV: https://github.com/nakiostudio/xcov P>
Vous pouvez exécuter la couverture et mettre vos fichiers ignorés pour améliorer une couverture correcte. P>
hi @sandy , pour répondre à vos questions: p>
Comment nous pouvons les supprimer d'une couverture de test unitaire? p> blockQuote>
AS de Xcode 10.2 Il n'ya aucun moyen d'exclure les fichiers du rapport de couverture de test. P>
sont-ils impliqués dans un score de couverture de test unitaire? P> blockQuote>
Oui, ils sont. Tous les fichiers contribuent à la couverture totale%. P>
Si vous souhaitez calculer un score de couverture de test qui ne prend pas en compte certains fichiers, votre meilleure chance est d'écrire un script pour analyser le
XCCOV code>
sortie. P>Je ne trouve aucune documentation officielle de la manière d'interagir, mais Ce message est un bon endroit pour commencer. P>
XCOV utilisait pour exclure la couverture pour ignorer les fichiers. Ce problème est-il avec le dernier XCOV?
Si vous souhaitez ignorer les fichiers que vous pouvez ignorer les fichiers que vous souhaitez, Slather peut être un meilleur outil. p>
Vous pouvez ignorer les fichiers du calcul de la couverture en configurant les fichiers dans Veuillez trouver les détails ici Comment ignorer. P> .slather.yml code> fichier sous
Ignorer code> option. p>
Lorsque des tests d'unité sont exécutés, P>
Le problème est que l'application lancement incendie votre séquence normale, créant des vues et peut-être lancer des appels réseau. Cela interfère non seulement avec les rapports de couverture de code - cela poisons potentiellement vos tests de l'unité. Par exemple, si vous testez des notifications en passant par une unité de réception d'une notification, vous devez savoir que les seuls objets à l'écoute de cette notification ont été créés par le test, et non sur le lancement de l'application. P>
Un autre problème avec l'ignorance de la couverture de certains fichiers est la suivante: comment allez-vous voir quelle est la couverture de votre appareil de test de ces fichiers? P>
La solution consiste à utiliser un délégué d'applications différent pour des tests qui ne font presque rien. P>