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++ .
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.
Postupujte podle pokynů v Vcpkg : správce balíčků C++ pro Windows a nainstalujte vcpkg (pokud ho ještě nemáte).
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.
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
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.
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 .
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í
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.
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.
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 Ne a pak zvolte OK a uložte provedené změny.
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.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
V Průzkumník řešení klikněte pravým tlačítkem na uzel řešení a zvolte Přidat>nový projekt.
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ší.
Zadejte název projektu a zvolte Vytvořit.
main
Odstraňte funkci v souboru .cpp.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
Do testovacího .cpp souboru 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í.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ů.