Použití Boost.Test pro C++ v sadě Visual Studio

V sadě Visual Studio 2017 a novějších je testovací adaptér Boost.Test integrovaný do integrovaného vývojového prostředí sady Visual Studio. Jedná se o součást vývoje desktopových aplikací pomocí úlohy C++ .

Test Adapter for Boost.Test

Pokud nemáte nainstalovaný vývoj desktopových aplikací s úlohou C++, otevřete Instalační program pro Visual Studio. Vyberte vývoj desktopových aplikací pomocí úlohy C++ a pak zvolte tlačítko Upravit .

Nainstalovat Boost

Boost.Test vyžaduje Boost! Pokud nemáte nainstalovaný Boost, doporučujeme použít správce balíčků Vcpkg.

  1. Postupujte podle pokynů v Vcpkg : správce balíčků C++ pro Windows a nainstalujte vcpkg (pokud ho ještě nemáte).

  2. Nainstalujte dynamickou nebo statickou knihovnu Boost.Test:

    • Spusťte vcpkg install boost-test instalaci dynamické knihovny Boost.Test.

      -NEBO-

    • Spusťte vcpkg install boost-test:x86-windows-static instalaci statické knihovny Boost.Test.

  3. Spusťte vcpkg integrate install konfiguraci sady Visual Studio s knihovnou a zahrňte cesty k záhlavím a binárním souborům Boost.

V sadě Visual Studio máte na výběr, jak nakonfigurovat testy v rámci vašeho řešení: Testovací kód můžete zahrnout do projektu v rámci testu nebo můžete vytvořit samostatný testovací projekt pro testy. Obě možnosti mají výhody a nevýhody.

Přidání testů do projektu

V sadě Visual Studio 2017 verze 15.6 a novější můžete do projektu přidat šablonu položky pro testy. Testy i váš kód jsou aktivní ve stejném projektu. K vygenerování testovacího sestavení budete muset vytvořit samostatnou konfiguraci sestavení. A budete muset testy ponechat mimo sestavení ladění a vydané verze.

V sadě Visual Studio 2017 verze 15.5 nejsou pro Boost.Test k dispozici žádné předem nakonfigurované šablony testovacích projektů nebo položek. Podle pokynů vytvořte a nakonfigurujte samostatný testovací projekt.

Vytvoření položky Boost.Test

  1. Pokud chcete vytvořit soubor .cpp pro testy, klikněte pravým tlačítkem myši na uzel projektu v Průzkumník řešení a zvolte Přidat>novou položku.

  2. V dialogovém okně Přidat novou položku rozbalte položku Nainstalováno Visual>C++>Test. Vyberte Boost.Test a pak zvolte Přidat , abyste do projektu přidali Test.cpp .

    Boost.Test Item Template

Nový soubor Test.cpp obsahuje ukázkovou testovací metodu. Tento soubor je místo, kde můžete zahrnout vlastní soubory hlaviček a zapisovat testy pro vaši aplikaci.

Testovací soubor také používá makra k definování nové main rutiny pro konfigurace testů. Pokud projekt sestavíte teď, zobrazí se LNK2005 chyba, například _main už definovaná v main.obj.

Vytváření a aktualizace konfigurací sestavení

  1. Pokud chcete vytvořit testovací konfiguraci, na řádku nabídek vyberte Sestavit>Configuration Manager. V dialogovém okně Configuration Manageru otevřete rozevírací seznam v části Konfigurace aktivního řešení a zvolte Nový. V dialogovém okně Nová konfigurace řešení zadejte název, například Debug UnitTests. V části Kopírovat nastavení vyberte Ladit a pak zvolte OK.

  2. Vyloučte testovací kód z konfigurací ladění a vydaných verzí: V Průzkumník řešení klikněte pravým tlačítkem na Test.cpp a vyberte Vlastnosti. V dialogovém okně Stránky vlastností vyberte v rozevíracím seznamu Konfigurace všechny konfigurace. Vyberte Vlastnosti>konfigurace Obecné a otevřete rozevírací seznam pro vlastnost Vyloučeno z sestavení. Vyberte Ano a pak zvolte Použít , aby se změny uložily.

  3. Pokud chcete do konfigurace Debug UnitTests zahrnout testovací kód, vyberte v dialogovém okně Stránky vlastností v rozevíracím seznamu Konfigurace ladění UnitTests. Ve vlastnosti Vyloučeno z sestavení vyberte Nea pak zvolte OK a uložte provedené změny.

  4. Vylučte hlavní kód z konfigurace Debug UnitTests. V Průzkumník řešení klikněte pravým tlačítkem myši na soubor, který obsahuje vaši main funkci, a vyberte Vlastnosti. V dialogovém okně Stránky vlastností vyberte v rozevíracím seznamu Konfigurace ladění UnitTests. Vyberte Vlastnosti>konfigurace Obecné a otevřete rozevírací seznam pro vlastnost Vyloučeno z sestavení. Vyberte Ano a pak zvolte OK a uložte provedené změny.

  5. Nastavte konfiguraci řešení na Debug UnitTests a pak sestavte projekt, aby Průzkumník testů mohl zjistit metodu.

Pokud název konfigurace, který vytvoříte, začíná slovy "Ladit" nebo "Release", odpovídající knihovny Boost.Test se automaticky vyberou.

Šablona položky používá variantu Boost.Test s jedním záhlavím, ale můžete upravit cestu #include tak, aby používala samostatnou variantu knihovny. Další informace naleznete v tématu Přidání direktiv include.

Vytvoření samostatného testovacího projektu

V mnoha případech je pro vaše testy jednodušší použít samostatný projekt. Pro svůj projekt nebudete muset vytvořit speciální konfiguraci testu. Nebo vylučte testovací soubory z buildů ladění a vydaných verzí.

Vytvoření samostatného testovacího projektu

  1. V Průzkumník řešení klikněte pravým tlačítkem na uzel řešení a zvolte Přidat>nový projekt.

  2. V dialogovém okně Přidat nový projekt zvolte v rozevíracích náknech filtru C++, Windows a Konzola . Vyberte šablonu konzolové aplikace a pak zvolte Další.

  3. Zadejte název projektu a zvolte Vytvořit.

  4. main Odstraňte funkci v souboru .cpp.

  5. Pokud používáte jedno záhlaví nebo dynamickou verzi knihovny Boost.Test, přejděte do části Přidat direktivy include. Pokud používáte statickou verzi knihovny, musíte provést další konfiguraci:

    a. Pokud chcete soubor projektu upravit, nejdřív ho uvolněte. V Průzkumník řešení klikněte pravým tlačítkem myši na uzel projektu a zvolte Uvolnit projekt. Potom klikněte pravým tlačítkem myši na uzel projektu a zvolte Upravit <název.vcxproj>.

    b. Přidejte do skupiny vlastností Globals dva řádky , jak je znázorněno tady:

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

    c. Uložte a zavřete soubor *.vcxproj a pak projekt znovu načtěte.

    d. Chcete-li otevřít stránky vlastností, klikněte pravým tlačítkem myši na uzel projektu a zvolte Vlastnosti.

    e. Rozbalte generování kódu C/C++>a pak vyberte Knihovnu modulu runtime. Vyberte /MTd pro ladění statické knihovny modulu runtime nebo /MT pro uvolnění statické knihovny modulu runtime.

    f. Rozbalit systém linkeru>. Ověřte, že je podsystém nastavený na konzolu.

    g. Zvolte OK a zavřete stránky vlastností.

Přidání direktiv include

  1. Do testovacího souboru .cpp přidejte všechny potřebné #include direktivy, aby byly typy a funkce programu viditelné pro testovací kód. Pokud používáte samostatný testovací projekt, obvykle se program nachází na stejné úrovni v hierarchii složek. Pokud zadáte #include "../", zobrazí se okno IntelliSense a umožní vám vybrat úplnou cestu k souboru záhlaví.

    Add #include directives

    Samostatnou knihovnu můžete použít s:

    #include <boost/test/unit_test.hpp>
    

    Nebo použijte jednu hlavičkovou verzi s:

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

    Pak definujte BOOST_TEST_MODULE.

Následující příklad stačí, aby byl test zjistitelný v Průzkumníku testů:

#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());
}

Vytvoření a spouštění testování

Teď jste připraveni psát a spouštět testy Boost. Informace o testovacích makrech najdete v dokumentaci k knihovně testů Boost. Informace o zjišťování, spuštění a seskupování testů pomocí Průzkumníka testů najdete v tématu Spouštění testů pomocí Průzkumníka testů.