CMake файл для интегрированного модульного тестирования Visual Studio - PullRequest
0 голосов
/ 02 декабря 2018

Visual Studio 2017 имеет встроенное модульное тестирование C ++ (нативное, google test, ctest и т. Д.).Как я могу создать файл CMakeLists.txt, который будет создавать такой проект, который будет использовать интегрированное тестирование IDE, например, с использованием либо google test, либо встроенной среды модульного тестирования microsoft?К сожалению, все примеры Microsoft просто создают проект в Visual Studio, а не из файла CMake.

Любая помощь приветствуется, спасибо!

1 Ответ

0 голосов
/ 03 декабря 2018

Mikewho,

Я создал небольшой пример, используя проект Google Test, который работает со встроенным тестированием IDE.

Создайте пустой каталог и сохраните эти два файла:

CMakeLists.txt

cmake_minimum_required(VERSION 3.0)
project(test_me)

# GTest
enable_testing()
find_package(GTest REQUIRED)
include_directories(${GTEST_INCLUDE_DIRS})

# Unit Tests
# Add test cpp file
add_executable( runUnitTests tests.cpp)
# Link test executable against gtest & gtest_main
target_link_libraries(runUnitTests ${GTEST_BOTH_LIBRARIES})
add_test( runUnitTests runUnitTests )

tests.cpp

#include <gtest/gtest.h>

TEST(ABC, TEST1) {
  EXPECT_EQ(true, true);
}

В командетип приглашения

mkdir build
cd build
cmake .. "-DCMAKE_TOOLCHAIN_FILE=C:/dev/vcpkg/scripts/buildsystems/vcpkg.cmake"

Примечание. У меня была vcpkg install gtest

C:\dev\vcpkg>vcpkg.exe install gtest

Убедитесь, что это установлено в Visual Studio 2017
enter image description here

В Инструменты> Параметры> Тестовый адаптер для Google Test установите регулярное выражение в .exe
enter image description here

Создайте решение и нажмите Запустить все в Тестовом проводнике.
enter image description here

При первом запуске он найдет контрольный пример

[12/3/2018 8:38:41 AM Informational] ------ Run test started ------
[12/3/2018 8:38:42 AM Warning] Could not locate debug symbols for 'C:\dev\cpptests\GoogleTest\build\Debug\runUnitTests.exe'. To make use of '--list_content' discovery, ensure that debug symbols are available or make use of '<ForceListContent>' via a .runsettings file.
[12/3/2018 8:38:42 AM Informational] Test Adapter for Google Test: Test execution starting...
**[12/3/2018 8:38:42 AM Informational] Found 1 tests in executable** C:\dev\cpptests\GoogleTest\build\Debug\runUnitTests.exe
[12/3/2018 8:38:42 AM Informational] Running 1 tests...
[12/3/2018 8:38:42 AM Informational] Google Test execution completed, overall duration: 00:00:00.2390446
[12/3/2018 8:38:42 AM Informational] ========== Run test finished: 1 run (0:00:01.2668844) ==========

Надеюсь, это поможет?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...