Używanie narzędzia CTest for C++ w programie Visual Studio 2017 lub nowszym

Narzędzie CMake (w tym CTest) jest domyślnie zintegrowane ze środowiskiem IDE programu Visual Studio jako składnik pakietu roboczego Programowanie aplikacji klasycznych w języku C++ . Jeśli musisz zainstalować go na maszynie, otwórz program Instalator programu Visual Studio, kliknij przycisk Programowanie aplikacji klasycznych za pomocą języka C++, a następnie kliknij przycisk Modyfikuj. Wybierz pozycję C++ CMake tools for Windows (Narzędzia C++ CMake dla systemu Windows ) na liście składników obciążenia.

Aby napisać testy

Obsługa narzędzia CMake w programie Visual Studio nie obejmuje systemu projektu Visual Studio. W związku z tym piszesz i konfigurujesz testy CTest tak samo jak w dowolnym środowisku CMake. enable_testing() Użyj polecenia , aby włączyć testowanie i add_test() polecenie lubgtest_discover_tests(), aby dodać nowy test. Aby dowiedzieć się więcej na temat narzędzia CTest, zobacz dokumentację narzędzia CMake.

Aby uzyskać więcej informacji na temat korzystania z narzędzia CMake w programie Visual Studio, zobacz CMake projects in Visual Studio (Projekty CMake w programie Visual Studio).

Aby uruchomić testy

Narzędzie CTest jest w pełni zintegrowane z Eksploratorem testów, a także obsługuje zarówno struktury testów jednostkowych Google, jak i Boost. Te struktury są domyślnie dołączane jako składniki w obciążeniu Programowanie aplikacji klasycznych za pomocą języka C++ . Jednak w przypadku uaktualniania projektu ze starszej wersji programu Visual Studio może być konieczne zainstalowanie tych struktur przy użyciu programu Instalator programu Visual Studio.

Poniższa ilustracja przedstawia wyniki przebiegu testu CTest przy użyciu platformy Google Test:

CTest with Google Test Framework in Visual Studio

Jeśli używasz CTest, ale nie kart Google lub Boost, zobaczysz wyniki na poziomie CTest zamiast indywidualnej metody testu. Można debugować pliki wykonywalne tylko do testowania CTest, ale ślady stosu w poszczególnych testach nie są obsługiwane.