Couverture des tests de flottement | AU NOUVEAU Blog

En tant que bonne pratique, nous devrions toujours écrire des tests unitaires lors de l’écriture du code d’un logiciel. Ensuite, il est important de mesurer si le test que nous écrivons est suffisant pour notre code ou non, selon nos critères de couverture.
Nous utilisons quelques outils, décrits ci-dessous, qui vérifient quelles lignes de codes ne sont pas couvertes par les tests.
Pré-requis (outils de base) requis pour faire le test:
- IDE – Android Studio ou code VS
- Cadre – flottement
- Lcôve
- Savoir écrire des tests
Voici la commande pour exécuter test en flutter :
test de flottement
Cette commande exécutera tous les fichiers de test sous le dossier principal / test du projet racine. Si nous voulons également générer une couverture, nous devons exécuter la commande suivante :
Test de flottement — couverture
Test avec couverture wcréer un dossier de couverture dans le projet racine avec un fichier nommé lcov.info. Ce fichier contient toutes les informations relatives à la couverture de test de chaque fichier.
Il y a un problème dans la couverture des tests de flottement, il ne signalerait pas les fichiers non testés dans lcov. Il existe une solution pour tout inclure dans le rapport de couverture de test lcove. Nous devons écrire un script pour importer tous les fichiers Dart, à l’exception des fichiers générés tels que les fichiers *.g., les fichiers gelés, etc. Vous pouvez voir le problème en détail ici : https://github.com/flutter/flutter/issues/27997
À l’avenir, nous allons également créer un fichier import_file_coverage.sh
fichier=test/coverage_helper_test.dart |
Ce fichier (import_file_coverage.sh) a besoin d’un nom de paquet comme paramètre. Nous ajoutons le nom du package et exécutons la commande comme suit :
sh import_file_coverage.sh nom_de_votre_paquet
Cela va générer couverture_helper_test.dart fichier sous le dossier de test et ajoutez tous ces fichiers dans lcov.info pour générer un rapport sur tous ces fichiers.
Maintenant, notre prochaine tâche consiste à créer un rapport de couverture de test lisible à partir de lcove.info dossier. Pour ce faire, nous prendrons l’aide de genhtml commande qui générera un fichier html lisible qui s’ouvrira dans votre navigateur par défaut :
Bravo, nous avons maintenant une couverture en ligne de chaque dossier et fichier !
Lorsque nous cliquons sur l’un des fichiers de l’image ci-dessus, cela nous amène à une couverture détaillée de MaPageAccueil.dart fichier comme ci-dessous :
Dans les fichiers ci-dessus, les lignes bleues signifient les lignes couvertes et les rouges signifient les lignes non testées. Comme on peut le voir dans MaPageAccueil.dart fichier que nous avons couvert 93,3%, avec deux lignes restent non testées. Nous pouvons également couvrir ces lignes en écrivant des tests pour ces lignes.
Mais il y a un défi ici. Dans les modèles, nous voyons qu’il n’y a qu’une couverture de 70,8 % (en haut à droite dans la cellule de couleur rouge). En effet, il a également couvert les fichiers générés pour lesquels nous ne pouvons pas écrire de cas de test. Ainsi, nous supprimerons tous *.g.dart fichiers et autres fichiers générés à partir de notre fichier lcove généré. Voici la commande pour supprimer les fichiers générés :
lcov – supprimer la couverture/lcov.base.info \ |
Maintenant, tout le script ressemblera à ceci :
Dossier create_clean_lcov_and_generate_html.sh
#!/bin/bash |
Et enfin, nous devons extraire le pourcentage total de couverture de test de lcov.info fichier qui est couvert, pour cela nous écrirons la commande suivante :
taux de couverture=$(lcov –summary « couverture/lcov.base.info » | grep « lignes…… » | coupe -d ‘ ‘ -f 4 | coupe -d ‘%’ -f 1)
REQUIRED_COVERAGE_PERC=80 // Vous pouvez définir le pourcentage que vous souhaitez couvrir, dans ce cas nous avons défini 80%
Après avoir obtenu le pourcentage, nous pouvons l’utiliser dans n’importe quel CI pour quitter le processus de construction s’il ne répond pas à nos critères ou pourcentage de couverture de code minimum. Voici le code suivant pour faire la même chose :
taux de couverture=$(lcov –summary « couverture/lcov.base.info » | grep « lignes…… » | coupe -d ‘ ‘ -f 4 | coupe -d ‘%’ -f 1) |
J’espère que ce blog vous aidera à comprendre comment vous pouvez mesurer la couverture du code flottant et s’il répond à nos critères de couverture minimale.
Restez à l’écoute pour la partie 2 de ce blog qui couvrira « Comment tester les sous-packages du projet Flutter ».
TROUVÉ CELA UTILE ? PARTAGEZ-LE
Source link