Maison développement back-end C++ Comment mesurer la couverture des tests unitaires des fonctions C++ ?

Comment mesurer la couverture des tests unitaires des fonctions C++ ?

Apr 24, 2024 am 09:36 AM
linux 单元测试 c++

Les méthodes pour mesurer la couverture des tests unitaires de fonctions en C++ incluent : l'utilisation d'indicateurs du compilateur, tels que les indicateurs -fprofile-arcs et -ftest-coverage de GCC ; l'utilisation de frameworks de test, tels que l'indicateur --gtest_output=xml de Google Test, l'utilisation d'outils externes tels que ; CovWrap.

如何测量 C++ 函数单元测试的覆盖率?

Comment mesurer la couverture des tests unitaires des fonctions C++ ?

La couverture du code est un indicateur important de la qualité des tests unitaires. Il indique la quantité de code de fonction couverte par la suite de tests lors de son exécution. En C++, il existe plusieurs façons de mesurer la couverture.

Utilisation des indicateurs du compilateur

De nombreux compilateurs fournissent des indicateurs pour mesurer la couverture. Par exemple, en utilisant le compilateur GCC :

g++ -fprofile-arcs -ftest-coverage your_code.cpp
Copier après la connexion

Après avoir exécuté le programme, il générera un fichier nommé gcov.out dans le répertoire courant, qui contient les informations de couverture. gcov.out 的文件,其中包含覆盖率信息。

使用测试框架

Google Test(gtest)等测试框架提供了内置的覆盖率测量工具。在gtest中,使用 --gtest_output=xml 标志运行测试:

gtest your_test_case --gtest_output=xml
Copier après la connexion

这将生成一个 XML 文件,其中包含覆盖率数据。

使用外部工具

CovWrap 是一个外部工具,可以生成 gcov 输出。它适用于 Windows 和 Linux 系统。

实战案例

考虑一个简单的 C++ 函数:

int sum(int a, int b) {
  return a + b;
}
Copier après la connexion

创建一个单元测试来测试此函数:

#include "gtest/gtest.h"

TEST(SumTest, PositiveValues) {
  EXPECT_EQ(sum(1, 2), 3);
}
Copier après la connexion

使用gtest运行测试并生成覆盖率报告:

gtest SumTest --gtest_output=xml
Copier après la connexion

生成的 XML 报告将显示该测试覆盖了 sum

Utiliser des cadres de test

🎜🎜Les cadres de test comme Google Test (gtest) fournissent des outils de mesure de couverture intégrés. Dans gtest, exécutez le test en utilisant le flag --gtest_output=xml : 🎜
  return a + b;
Copier après la connexion
🎜Cela générera un fichier XML contenant les données de couverture. 🎜🎜🎜Utilisation d'outils externes 🎜🎜🎜CovWrap est un outil externe qui peut générer une sortie gcov. Il est disponible pour les systèmes Windows et Linux. 🎜🎜🎜Cas pratique🎜🎜🎜Considérons une fonction C++ simple : 🎜rrreee🎜Créez un test unitaire pour tester cette fonction : 🎜rrreee🎜Utilisez gtest pour exécuter le test et générer un rapport de couverture : 🎜rrreee🎜Le rapport XML généré affichera this Le test couvre les lignes de code suivantes de la fonction sum : 🎜rrreee🎜 Cela indique que le scénario de test peut couvrir la logique de la fonction. 🎜

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 de ce site Web
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

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.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

La course de performance: Golang vs C La course de performance: Golang vs C Apr 16, 2025 am 12:07 AM

Golang et C ont chacun leurs propres avantages dans les compétitions de performance: 1) Golang convient à une concurrence élevée et à un développement rapide, et 2) C fournit des performances plus élevées et un contrôle fin. La sélection doit être basée sur les exigences du projet et la pile de technologie d'équipe.

Quelle configuration de l'ordinateur est requise pour VScode Quelle configuration de l'ordinateur est requise pour VScode Apr 15, 2025 pm 09:48 PM

Vs Code Système Exigences: Système d'exploitation: Windows 10 et supérieur, MacOS 10.12 et supérieur, processeur de distribution Linux: minimum 1,6 GHz, recommandé 2,0 GHz et au-dessus de la mémoire: minimum 512 Mo, recommandée 4 Go et plus d'espace de stockage: Minimum 250 Mo, recommandée 1 Go et plus d'autres exigences: connexion du réseau stable, xorg / wayland (Linux) recommandé et recommandée et plus

Comment changer le mode chinois avec VScode Comment changer le mode chinois avec VScode Apr 15, 2025 pm 11:39 PM

VS Code pour changer le mode chinois: ouvrez l'interface des paramètres (Windows / Linux: Ctrl, macOS: CMD,) Recherchez des paramètres "Editor: Language" Sélectionnez "Chine

VSCODE Précédent la touche de raccourci suivante VSCODE Précédent la touche de raccourci suivante Apr 15, 2025 pm 10:51 PM

VS CODE Utilisation de la clé de raccourci en une étape / prochaine: une étape (arrière): Windows / Linux: Ctrl ←; macOS: cmd ← Étape suivante (vers l'avant): Windows / Linux: Ctrl →; macOS: CMD →

Quel est le but principal de Linux? Quel est le but principal de Linux? Apr 16, 2025 am 12:19 AM

Les principales utilisations de Linux comprennent: 1. Système d'exploitation du serveur, 2. Système intégré, 3. Système d'exploitation de bureau, 4. Environnement de développement et de test. Linux excelle dans ces domaines, offrant des outils de stabilité, de sécurité et de développement efficaces.

Comment exécuter du code avec vscode Comment exécuter du code avec vscode Apr 15, 2025 pm 09:51 PM

L'exécution du code dans VS Code ne prend que six étapes: 1. Ouvrez le projet; 2. Créer et écrire le fichier de code; 3. Ouvrir le terminal; 4. Accédez à l'annuaire du projet; 5. Exécutez le code avec les commandes appropriées; 6. Affichez la sortie.

Tutoriel chinois de réglage VScode Tutoriel chinois de réglage VScode Apr 15, 2025 pm 11:45 PM

VS Code prend en charge les paramètres chinois, qui peuvent être complétés en suivant les étapes: ouvrez le panneau des paramètres et recherchez "Locale". Définissez "Langale.Language" sur "ZH-CN" (chinois simplifié) ou "ZH-TW" (chinois traditionnel). Enregistrer les paramètres et redémarrer le code. Le menu des paramètres, la barre d'outils, les invites de code et les documents seront affichés en chinois. D'autres paramètres linguistiques peuvent également être personnalisés, tels que le format de balise de fichier, la description de l'entrée et le langage du processus de diagnostic.

Tutoriel d'utilisation des terminaux VScode Tutoriel d'utilisation des terminaux VScode Apr 15, 2025 pm 10:09 PM

Le terminal intégré VScode est un outil de développement qui permet d'exécuter des commandes et des scripts au sein de l'éditeur pour simplifier le processus de développement. Comment utiliser la borne VScode: ouvrez le terminal avec la touche de raccourci (CTRL / CMD). Entrez une commande ou exécutez le script. Utilisez des raccourcis clavier (tels que Ctrl L pour effacer le terminal). Modifiez le répertoire de travail (comme la commande CD). Les fonctionnalités avancées incluent le mode de débogage, l'achèvement de l'extrait de code automatique et l'historique des commandes interactives.

See all articles