recherche
MaisonPériphériques technologiquesIndustrie informatiqueAutomatiser le débogage en Git avec des tests unitaires

Automatiser le débogage en Git avec des tests unitaires

Les plats clés

  • L'automatisation du débogage en GIT avec des tests unitaires implique l'utilisation de la commande «BISECT» pour traverser les validations et identifier celle qui a introduit un bogue. Ce processus peut être automatisé avec un script, réduisant le besoin d'étiquetage manuel des commits comme «bons» ou «mauvais».
  • Les tests unitaires sont cruciaux dans ce processus, car ils sont exécutés pour chaque engagement pour déterminer si elle doit être attribuée comme «bonne» ou «mauvaise». Cela peut être fait en utilisant une commande comme «Git Bisect Run [Commande pour exécuter les tests]». Une fois les tests exécutés pour chaque engagement, GIT peut identifier l'engagement qui a introduit l'erreur.
  • À mesure que la base de code augmente en taille, l'écriture de tests unitaires pour chaque morceau de code devient nécessaire. Bien que cela puisse sembler long au départ, il aide à déboguer et gagner du temps à long terme. Il est également possible de créer un script de shell personnalisé avec des codes de sortie personnalisés pour remplacer les tests unitaires.

Il y a quelque temps, j'ai publié un article sur le débogage d'une base de code dans GIT en utilisant deux commandes blâme et bissect. Git Blame a impliqué la vérification de l'auteur de chaque ligne d'un fichier, tandis que BISECT implique la traversée dans les validations (en utilisant la recherche binaire) pour trouver celle qui a introduit le bogue. Dans cet article, nous verrons comment automatiser le processus de bissect.

Pour rafraîchir votre mémoire, Git Bisect a impliqué quelques étapes, qui sont résumées ci-dessous:

  • Démarrez l'assistant BISECT avec Git Bisect Start
  • Sélectionnez «Good» et «Bad» Commits, ou Commits connus où le bogue était absent et présent, respectivement
  • Attribuer des engagements à tester comme «bons» ou «mauvais» jusqu'à ce que Git découvre l'engagement qui a introduit le bug
  • quitter l'assistant avec Git Bisect réinitialiser

Pour avoir une idée de l'ensemble du processus, vous pourriez jeter un coup d'œil à ce screencast, qui montre en détail le fonctionnement du processus de débogage.

Naturellement, la troisième étape a pris du temps - Git vous montrerait que vous engagez un par un et vous deviez les qualifier de «bon» ou «mauvais» après avoir vérifié si le bogue était présent dans cette validation.

Lorsque nous écrivons un script pour automatiser le processus de débogage, nous exécuterons essentiellement la troisième étape. Commençons!

mise en scène de l'environnement

Dans cet article, j'écrirai un petit module dans Python qui contient une fonction qui ajoute deux nombres. C'est une tâche très simple et je vais le faire à des fins de démonstration uniquement. Le code est explicite, donc je n'entrerai pas dans les détails.

<span>#add_two_numbers.py
</span>def add_two_numbers<span>(a, b):
</span>    <span>'''
</span>        Function to <span>add two numbers
</span>    <span>'''
</span>    addition <span>= a + b
</span>    <span>return addition</span>

Pour automatiser le processus de BISECT GIT, vous devez rédiger des tests pour votre code. Dans Python, nous utiliserons le module unittest pour écrire nos cas de test. Voici à quoi ressemble un test de base.

<span>#add_two_numbers.py
</span>def add_two_numbers<span>(a, b):
</span>    <span>'''
</span>        Function to <span>add two numbers
</span>    <span>'''
</span>    addition <span>= a + b
</span>    <span>return addition</span>

Nous pourrions écrire plus de ces tests, mais c'était juste pour démontrer comment continuer. En fait, vous devriez certainement écrire plus de cas de test car vos programmes et applications vont être beaucoup plus complexes que cela.

Pour exécuter les tests unitaires, exécutez le fichier tests.py contenant vos cas de test.

<span>#tests.py
</span><span>import unittest
</span>from add_two_numbers <span>import add_two_numbers
</span>
class TestsForAddFunction<span>(unittest.TestCase):
</span>
    def test_zeros<span>(self):
</span>        result <span>= add_two_numbers(0, 0)
</span>        self.assertEqual<span>(0, result)
</span>
<span>if __name__ == '__main__':
</span>    unittest.main<span>()</span>

Si les tests passent, vous devez obtenir la sortie suivante.

Automatiser le débogage en Git avec des tests unitaires

présentons maintenant une erreur dans notre fonction et engageons le code.

python tests.py

Pour vérifier que les tests échouent, faisons-les à nouveau.

Automatiser le débogage en Git avec des tests unitaires

Ajoutons quelques commits de plus afin que le commit qui a introduit l'erreur ne soit pas le dernier.

Automatiser le débogage en Git avec des tests unitaires

Démarrez le processus de bissect

Pour l'assistant Git Bisect, nous sélectionnerons le dernier engagement en tant que mauvais (B60FE2CF35) et le premier comme bon (98d9df03b6).

def add_two_numbers<span>(a, b):
</span>    <span>'''
</span>        Function to <span>add two numbers
</span>    <span>'''
</span>    addition <span>= a + 0
</span>    <span>return addition</span>

À ce stade, Git nous souligne un engagement et nous demande s'il s'agit d'un bon ou d'un mauvais engagement. C'est à ce moment que nous disons à Git de faire les tests pour nous. La commande est comme suit.

<span>git bisect start b60fe2cf35 98d9df03b6</span>

Dans notre cas, il se révélera être le suivant.

<span>git bisect run [command to run tests]</span>

Lorsque nous fournissons à Git la commande d'exécuter les tests lui-même, plutôt que de nous demander, Git exécute ces tests pour chaque révision et décide si le commit doit être attribué bon ou mauvais.

Automatiser le débogage en Git avec des tests unitaires

Une fois que Git a terminé des tests pour chaque engagement, il découvre quel commit a introduit l'erreur, comme la magie!

Automatiser le débogage en Git avec des tests unitaires

Une fois que vous avez trouvé votre engagement, n'oubliez pas de réinitialiser l'assistant avec la réinitialisation de Git Bisect.

À la place de vos tests unitaires, vous pouvez également créer un script de shell personnalisé avec des codes de sortie personnalisés. En général, un code de sortie de 0 est considéré comme un succès, tout le reste est un échec.

Réflexions finales

À mesure que la taille de votre base de code augmente, l'écriture de tests unitaires pour chaque petit morceau de code que vous écrivez devient nécessaire. Les tests d'écriture peuvent sembler longs, mais comme vous l'avez vu dans ce cas, ils vous aident à déboguer et à vous faire gagner du temps à long terme.

Comment votre équipe débogue-t-elle des erreurs dans le code? Faites-nous savoir dans les commentaires ci-dessous.

Questions fréquemment posées (FAQ) sur l'automatisation du débogage avec les tests unitaires git

Comment puis-je configurer le débogage automatisé avec des tests unitaires GIT?

La configuration de débogage automatisé avec des tests unitaires GIT implique plusieurs étapes. Tout d'abord, vous devez créer un référentiel GIT et l'initialiser. Ensuite, vous devez écrire vos tests unitaires à l'aide d'un framework de test compatible avec votre langage de programmation. Une fois vos tests écrits, vous pouvez utiliser un outil d'intégration continue (CI) pour automatiser le fonctionnement de ces tests. Cet outil peut être configuré pour exécuter vos tests chaque fois que vous poussez les modifications à votre référentiel GIT. De cette façon, vous pouvez attraper et corriger les bogues au début du processus de développement.

Quels sont les avantages de l'automatisation de débogage avec des tests unitaires GIT?

L'automatisation du débogage avec les tests unitaires GIT présente plusieurs avantages. Il aide à attraper des bogues au début du processus de développement, ce qui peut gagner du temps et des ressources. Il garantit également que toutes les parties de votre code sont testées de manière cohérente. Cela peut améliorer la qualité globale de votre code et la rendre plus fiable. De plus, il peut rendre votre processus de développement plus efficace en réduisant la quantité de tests manuels que vous devez effectuer.

Qu'est-ce que l'intégration continue (CI) et comment est-il lié aux tests unitaires GIT?

L'intégration continue (CI) est une pratique de développement où les développeurs intègrent fréquemment le code dans un référentiel partagé, généralement plusieurs fois par jour. Chaque intégration est ensuite vérifiée par une version automatisée et des tests automatisés. Dans le contexte des tests unitaires GIT, CI peut être utilisé pour automatiser l'exécution de ces tests à chaque fois que les modifications sont poussées vers le référentiel GIT. Cela aide à attraper les bogues tôt et garantit que toutes les parties du code sont testées de manière cohérente.

Comment puis-je rédiger des tests unitaires efficaces pour mon référentiel GIT?

Écrire des tests unitaires efficaces implique plusieurs meilleures pratiques . Premièrement, chaque test doit se concentrer sur une seule fonctionnalité ou comportement. Cela facilite l'identification de la cause de tout échec. Deuxièmement, les tests doivent être indépendants et en mesure d'exécuter dans n'importe quel ordre. Cela garantit que le résultat d'un test n'affecte pas le résultat d'une autre. Troisièmement, les tests doivent être reproductibles et donner les mêmes résultats à chaque fois qu'ils sont exécutés. Cela garantit que vos tests sont fiables et peuvent être fiables pour attraper des bogues.

Quels outils puis-je utiliser pour automatiser le débogage avec les tests unitaires GIT?

Il existe plusieurs outils que vous pouvez utiliser pour automatiser le débogage avec des tests unitaires GIT. Il s'agit notamment d'outils d'intégration continue (CI) comme Jenkins, Travis CI et Circleci. Ces outils peuvent être configurés pour exécuter vos tests unitaires chaque fois que vous poussez les modifications à votre référentiel GIT. De plus, vous pouvez utiliser des frameworks de test comme JUnit (pour Java), Pytest (pour Python) et Mocha (pour JavaScript) pour écrire vos tests unitaires.

Comment puis-je intégrer mes tests d'unité GIT avec un outil d'intégration continue (CI)?

L'intégration de vos tests d'unité GIT avec un outil d'intégration continue (CI) implique plusieurs étapes. Tout d'abord, vous devez configurer votre outil CI pour vous connecter à votre référentiel GIT. Ensuite, vous devez le configurer pour exécuter vos tests unitaires à chaque fois que les modifications sont poussées vers le référentiel. Cela implique généralement d'écrire un fichier de configuration qui spécifie les commandes pour exécuter les tests et les conditions dans lesquelles les exécuter.

Que dois-je faire si mes tests unitaires GIT échouent?

Si votre git Git Les tests unitaires échouent, la première étape consiste à identifier la cause de l'échec. Cela implique généralement d'examiner la sortie de test et le code qui a été testé. Une fois que vous avez identifié la cause, vous pouvez apporter les modifications nécessaires à votre code et relancer les tests. Si les tests passent, vous pouvez pousser vos modifications au référentiel GIT. S'ils échouent à nouveau, vous devrez peut-être réviser vos tests ou votre code jusqu'à ce qu'ils réussissent.

Puis-je automatiser le débogage avec des tests unitaires GIT pour n'importe quel langage de programmation?

Oui, vous pouvez automatiser le débogage avec des tests unitaires GIT pour tout langage de programmation. Cependant, les outils et techniques spécifiques que vous utilisez peuvent varier en fonction de la langue. La plupart des langages de programmation disposent d'un ou plusieurs cadres de test que vous pouvez utiliser pour rédiger vos tests unitaires. De plus, la plupart des outils d'intégration continue (CI) prennent en charge plusieurs langues et peuvent être configurés pour exécuter vos tests quelle que soit la langue dans laquelle ils sont écrits.

Comment puis-je m'assurer que mes tests d'unité GIT sont efficaces?

Assurer que vos tests d'unité GIT sont efficaces impliquent plusieurs meilleures pratiques. Tout d'abord, vos tests doivent couvrir toutes les parties de votre code, y compris les cas de bord. Cela garantit que vos tests sont complets. Deuxièmement, vos tests doivent être indépendants et en mesure d'exécuter dans n'importe quel ordre. Cela garantit que le résultat d'un test n'affecte pas le résultat d'une autre. Troisièmement, vos tests doivent être reproductibles et donner les mêmes résultats à chaque fois qu'ils sont exécutés. Cela garantit que vos tests sont fiables.

Puis-je utiliser des tests unitaires GIT pour tester l'interface utilisateur (UI) de mon application?

Les tests unitaires GIT sont généralement utilisés pour tester les fonctionnalités de votre Code, pas l'interface utilisateur (UI) de votre application. Cependant, vous pouvez utiliser d'autres types de tests, tels que des tests d'intégration ou des tests de bout en bout, pour tester votre interface utilisateur. Ces tests peuvent également être automatisés et s'exécuter à l'aide d'un outil d'intégration continue (CI). Cela peut aider à attraper des bogues dans votre interface utilisateur au début du processus de développement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Construire un scanner de vulnérabilité de réseau avec GoConstruire un scanner de vulnérabilité de réseau avec GoApr 01, 2025 am 08:27 AM

Ce scanner de vulnérabilité de réseau basé sur GO identifie efficacement les faiblesses de sécurité potentielles. Il exploite les fonctionnalités de concurrence de GO pour la vitesse et comprend la détection de services et la correspondance de vulnérabilité. Explorons ses capacités et ses éthiques

Top 10 des meilleurs outils de vérificateur de backlink gratuit en 2025Top 10 des meilleurs outils de vérificateur de backlink gratuit en 2025Mar 21, 2025 am 08:28 AM

La construction du site Web n'est que la première étape: l'importance du référencement et des backlinks La construction d'un site Web n'est que la première étape pour la convertir en un actif marketing précieux. Vous devez faire l'optimisation du référencement pour améliorer la visibilité de votre site Web dans les moteurs de recherche et attirer des clients potentiels. Les backlinks sont la clé pour améliorer le classement de votre site Web, et il montre à Google et à d'autres moteurs de recherche l'autorité et la crédibilité de votre site Web. Tous les backlinks ne sont pas bénéfiques: identifier et éviter les liens nocifs Tous les backlinks ne sont pas bénéfiques. Les liens nocifs peuvent nuire à votre classement. Excellent outil de vérification de la liaison backlink gratuite surveille la source des liens vers votre site Web et vous rappelle les liens nuisibles. De plus, vous pouvez également analyser les stratégies de liaison de vos concurrents et en apprendre. Outil de vérification gratuite de backlink: votre agent de renseignement SEO

Un autre produit national de Baidu est lié à Deepseek.Un autre produit national de Baidu est lié à Deepseek.Mar 12, 2025 pm 01:48 PM

Deepseek-R1 autorise la bibliothèque Baidu et NetDisk: L'intégration parfaite de la pensée et de l'action profondes s'est rapidement intégrée à de nombreuses plateformes en seulement un mois. Avec sa disposition stratégique audacieuse, Baidu intègre Deepseek en tant que partenaire modèle tiers et l'intégre dans son écosystème, qui marque un progrès majeur dans sa stratégie écologique de "Big Model Search". Baidu Search et Wenxin Intelligent Intelligent Platform sont les premiers à se connecter aux fonctions de recherche profonde des grands modèles Deepseek et Wenxin, offrant aux utilisateurs une expérience de recherche IA gratuite. Dans le même temps, le slogan classique de "Vous saurez quand vous allez à Baidu", et la nouvelle version de l'application Baidu intègre également les capacités du Big Model et Deepseek de Wenxin, lançant "AI Search" et "Wide Network Information Raffinement"

Derrière le premier accès Android à Deepseek: voir le pouvoir des femmesDerrière le premier accès Android à Deepseek: voir le pouvoir des femmesMar 12, 2025 pm 12:27 PM

La montée en puissance du pouvoir technologique des femmes chinoises dans le domaine de l'IA: l'histoire de la collaboration d'honneur avec la contribution des femmes en profondeur au domaine de la technologie devient de plus en plus significative. Les données du ministère des Sciences et de la Technologie de la Chine montrent que le nombre de travailleuses scientifiques et technologiques est énorme et montre une sensibilité à la valeur sociale unique dans le développement des algorithmes d'IA. Cet article se concentrera sur l'honneur des téléphones mobiles et explorera la force de l'équipe féminine derrière qu'elle soit la première à se connecter au grand modèle Deepseek, montrant comment ils peuvent promouvoir le progrès technologique et remodeler le système de coordonnées de valeur de développement technologique. Le 8 février 2024, Honor a officiellement lancé le Big Model de Deepseek-R1, devenant le premier fabricant du camp Android à se connecter à Deepseek, excitant la réponse enthousiaste des utilisateurs. Dant ce succès, les membres de l'équipe féminine prennent des décisions de produits, des percées techniques et des utilisateurs

Le profit 'incroyable' de Deepseek: la marge bénéficiaire théorique est aussi élevée que 545%!Le profit 'incroyable' de Deepseek: la marge bénéficiaire théorique est aussi élevée que 545%!Mar 12, 2025 pm 12:21 PM

Deepseek a publié un article technique sur Zhihu, présentant en détail son système d'inférence Deepseek-V3 / R1, et a révélé pour la première fois des données financières clés, ce qui a attiré l'attention de l'industrie. L'article montre que la marge de bénéfice des coûts quotidiens du système atteint 545%, ce qui établit un nouveau profit mondial dans le modèle mondial de l'IA. La stratégie à faible coût de Deepseek lui donne un avantage dans la concurrence du marché. Le coût de sa formation sur modèle n'est que de 1% à 5% des produits similaires, et le coût de la formation du modèle V3 n'est que de 5,576 millions de dollars, bien inférieur à celui de ses concurrents. Pendant ce temps, la tarification de l'API de R1 n'est que de 1/7 à 1/2 d'Openaio3-MinI. Ces données prouvent la faisabilité commerciale de la voie technologique profonde et établissent également la rentabilité efficace des modèles d'IA.

Midea lance son premier climatiseur Deepseek: l'interaction vocale AI peut réaliser 400 000 commandes!Midea lance son premier climatiseur Deepseek: l'interaction vocale AI peut réaliser 400 000 commandes!Mar 12, 2025 pm 12:18 PM

MIDEA publiera bientôt son premier climatiseur équipé d'un grand modèle Deepseek - MIDEA Fresh and Clean Air Machine T6. Ce climatiseur est équipé d'un système de conduite intelligent avancé, qui peut ajuster intelligemment les paramètres tels que la température, l'humidité et la vitesse du vent en fonction de l'environnement. Plus important encore, il intègre le grand modèle Deepseek et prend en charge plus de 400 000 commandes vocales AI. La décision de Midea a provoqué des discussions animées dans l'industrie et est particulièrement préoccupé par l'importance de la combinaison de produits blancs et de grands modèles. Contrairement aux paramètres de température simples des climatiseurs traditionnels, MIDEA Fresh Air Machine T6 peut comprendre des instructions plus complexes et vagues et ajuster intelligemment l'humidité en fonction de l'environnement familial, améliorant considérablement l'expérience utilisateur.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Navigateur d'examen sécurisé

Navigateur d'examen sécurisé

Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

MinGW - GNU minimaliste pour Windows

MinGW - GNU minimaliste pour Windows

Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

PhpStorm version Mac

PhpStorm version Mac

Le dernier (2018.2.1) outil de développement intégré PHP professionnel