Guide pratique pour utiliser Boost.Test pour C++ dans Visual StudioHow to use Boost.Test for C++ in Visual Studio

Dans Visual Studio 2017 version 15.5 et ultérieur, l’adaptateur de test Boost.Test est intégré dans l’IDE Visual Studio comme composant de la charge de travail Développement Desktop en C++.In Visual Studio 2017 version 15.5 and later, the Boost.Test test adapter is integrated into the Visual Studio IDE as a component of the Desktop development with C++ workload.

Adaptateur de test pour Boost.Test

Si la charge de travail Développement Desktop en C++ n’est pas installée, ouvrez Visual Studio Installer et sélectionnez Modifier.If you don't have the Desktop development with C++ workload installed, open Visual Studio Installer and select Modify. Sélectionnez la charge de travail Développement Desktop en C++, puis choisissez le bouton Modifier.Select the Desktop development with C++ workload, then choose the Modify button.

Installer BoostInstall Boost

Boost.Test nécessite Boost!Boost.Test requires Boost! Si Boost n’est pas installé, nous vous recommandons d’utiliser le gestionnaire de package Vcpkg.If you do not have Boost installed, we recommend that you use the Vcpkg package manager.

  1. Suivez les instructions de Vcpkg : un gestionnaire de package C++ pour Windows pour installer vcpkg (si vous ne l’avez pas déjà).Follow the instructions at Vcpkg: a C++ package manager for Windows to install vcpkg (if you don't already have it).

  2. Installez la bibliothèque dynamique ou statique de Boost.Test :Install the Boost.Test dynamic or static library:

    • Exécutez vcpkg install boost-test pour installer la bibliothèque dynamique Boost.Test.Run vcpkg install boost-test to install the Boost.Test dynamic library.

      - OU --OR-

    • Exécutez vcpkg install boost-test:x86-windows-stati pour installer la bibliothèque statique Boost.Test.Run vcpkg install boost-test:x86-windows-static to install the Boost.Test static library.

  3. Exécutez vcpkg integrate install pour configurer Visual Studio avec la bibliothèque et inclure les chemins d’accès des en-têtes et des binaires Boost.Run vcpkg integrate install to configure Visual Studio with the library and include paths to the Boost headers and binaries.

Ajouter le modèle d’élément (Visual Studio 2017 15.6 et versions ultérieures)Add the item template (Visual Studio 2017 version 15.6 and later)

  1. Pour créer un fichier .cpp à des fins de tests, cliquez avec le bouton droit sur le nœud du projet dans l’Explorateur de solutions, puis choisissez Ajouter un nouvel élément.To create a .cpp file for your tests, right-click on the project node in Solution Explorer and choose Add New Item.

    Modèle d’élément Boost.Test

  2. Le nouveau fichier contient un exemple de méthode de test.The new file contains a sample test method. Générez votre projet pour permettre à l’Explorateur de tests de découvrir la méthode.Build your project to enable Test Explorer to discover the method.

Le modèle d’élément utilise la variante à en-tête unique de Boost.Test, mais vous pouvez modifier le chemin d’accès #include pour utiliser la variante avec bibliothèque autonome.The item template uses the single-header variant of Boost.Test, but you can modify the #include path to use the standalone library variant. Pour plus d’informations, consultez la section Ajouter des directives include.For more information, see Add include directives.

Créer un projet de test (Visual Studio 2017 version 15.5)Create a test project (Visual Studio 2017 version 15.5)

Dans Visual Studio 2017 version 15.5, aucun modèle de projet ou d’élément de test préconfiguré n’est disponible pour Boost.Test.In Visual Studio 2017 version 15.5, no pre-configured test project or item templates are available for Boost.Test. Vous devez donc créer et configurer un projet d’application de console pour y placer vos tests.Therefore, you have to create and configure a console application project to hold your tests.

  1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le nœud de la solution et choisissez Ajouter > Nouveau projet.In Solution Explorer, right click on the solution node and choose Add > New Project.

  2. Dans le volet gauche, choisissez Visual C++ > Windows Desktop, puis le modèle Application console Windows.In the left pane, choose Visual C++ > Windows Desktop, and then choose the Windows Console Application template.

  3. Nommez le projet et choisissez OK.Give the project a name and choose OK.

  4. Supprimez la fonction main dans le fichier .cpp.Delete the main function in the .cpp file.

  5. Si vous utilisez la version à en-tête unique ou la version à bibliothèque dynamique de Boost.Test, accédez à la section Ajouter des directives #include.If you are using the single-header or dynamic library version of Boost.Test, go to Add include directives. Si vous utilisez la version avec bibliothèque statique, vous devrez suivre des étapes de configuration supplémentaires :If you are using the static library version, then you have to perform some additional configuration:

    a.a. Pour modifier le fichier projet, commencez par le décharger.To edit the project file, first unload it. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le nœud du projet et choisissez Décharger le projet.In Solution Explorer, right-click the project node and choose Unload Project. Ensuite, cliquez avec le bouton droit sur le nœud du projet et choisissez Modifier <nom>.vcxproj.Then, right-click the project node and choose Edit <name>.vcxproj.

    b.b. Ajouter deux lignes au groupe de propriétés Globals comme indiqué ici :Add two lines to the Globals property group as shown here:

    <PropertyGroup Label="Globals">
    ....
        <VcpkgTriplet>x86-windows-static</VcpkgTriplet>
        <VcpkgEnabled>true</VcpkgEnabled>
    </PropertyGroup>
    

    c.c. Enregistrez et fermez le fichier *.vcxproj, puis rechargez le projet.Save and close the *.vcxproj file, and then reload the project.

    d.d. Pour ouvrir les pages de propriétés, cliquez avec le bouton droit sur le nœud du projet et choisissez Propriétés.To open the Property Pages, right-click on the project node and choose Properties.

    d.d. Développez C/C++ > Génération de code, puis sélectionnez Bibliothèque Runtime.Expand C/C++ > Code Generation, and then select Runtime Library. Sélectionnez /MTd pour une bibliothèque runtime statique de débogage ou /MT pour une bibliothèque runtime statique de publication.Select /MTd for debug static runtime library or /MT for release static runtime library.

    f.f. Développez Éditeur de liens > Système.Expand Linker > System. Vérifiez que Sous-système a la valeur Console.Verify that SubSystem is set to Console.

    g.g. Choisissez OK pour fermer les pages de propriétés.Choose OK to close the property pages.

Ajouter des directives includeAdd include directives

  1. Dans votre fichier .cpp de test, ajoutez les directives #include nécessaires pour rendre les types et les fonctions de votre programme visibles par le code de test.In your test .cpp file, add any needed #include directives to make your program's types and functions visible to the test code. En règle générale, le programme est un niveau au-dessus dans l’arborescence des dossiers.Typically, the program is up one level in the folder hierarchy. Si vous tapez #include "../", une fenêtre IntelliSense apparaît et vous permet de sélectionner le chemin complet du fichier d’en-tête.If you type #include "../", an IntelliSense window appears and enables you to select the full path to the header file.

    Ajouter des directives #include

    Vous pouvez utiliser la bibliothèque autonome avec :You can use the standalone library with:

    #include <boost/test/unit_test.hpp>
    

    Ou bien, utilisez la version à un seul en-tête avec :Or, use the single-header version with:

    #include <boost/test/included/unit_test.hpp>
    

    Ensuite, définissez BOOST_TEST_MODULE.Then, define BOOST_TEST_MODULE.

L’exemple suivant est suffisant pour que le test soit découvrable dans l’Explorateur de tests :The following example is sufficient for the test to be discoverable in Test Explorer:

#define BOOST_TEST_MODULE MyTest
#include <boost/test/included/unit_test.hpp\> //single-header
#include "../MyProgram/MyClass.h" // project being tested
#include <string>

BOOST_AUTO_TEST_CASE(my_boost_test)
{
    std::string expected_value = "Bill";

    // assume MyClass is defined in MyClass.h
    // and get_value() has public accessibility
    MyClass mc;
    BOOST_CHECK(expected_value == mc.get_value());
}

Écrire et exécuter des testsWrite and run tests

Vous êtes maintenant prêt à écrire et à exécuter des tests Boost.You're now ready to write and run Boost tests. Pour plus d’informations sur les macros de test, consultez la documentation de la bibliothèque de tests Boost.See the Boost test library documentation for information about the test macros. Pour plus d’informations sur la découverte, l’exécution et le regroupement de vos tests avec l’Explorateur de tests, consultez Exécuter des tests unitaires avec l’Explorateur de tests.See Run unit tests with Test Explorer for information about discovering, running, and grouping your tests by using Test Explorer.

Voir aussiSee also