не удается отладить googletests в Visual Studio в Debug / X64 - PullRequest
0 голосов
/ 13 июня 2019

Я не могу запустить свои тесты с помощью googletest в visual studio2019 в режиме отладки. на самом деле у меня разные симптомы на разных машинах, поэтому я попытался создать очень простой базовый пример, который, я надеюсь, является хорошей иллюстрацией моей проблемы, и доступен здесь:

https://github.com/Willyam42/mpb

В основном в режиме Release, кажется, работает нормально. В режиме отладки тесты не отображаются в тестовом окне VisualStudio2019, и я получаю следующие сообщения в окне вывода:

[13/06/2019 20:47:17 Informational] ------ Discover test started ------
[13/06/2019 20:47:17 Warning] Test run will use DLL(s) built for framework Framework45. Following DLL(s) will not be part of run: 
mpblib.lib,testrun.exe are built for Framework None and Platform X64.
 Go to http://go.microsoft.com/fwlink/?LinkID=236877&clcid=0x409 for more details on managing these settings.
[13/06/2019 20:47:19 Warning] Could not locate debug symbols for 'C:\Users\guill\build\mpblib\test\Debug\testrun.exe'. To make use of '--list_content' discovery, ensure that debug symbols are available or make use of '<ForceListContent>' via a .runsettings file.
[13/06/2019 20:47:19 Informational] Test Adapter for Google Test: Test discovery starting...
[13/06/2019 20:47:19 Informational] Test discovery completed, overall duration: 00:00:00.0607728
[13/06/2019 20:47:19 Warning] No test is available in C:\Users\guill\build\mpblib\src\Debug\mpblib.lib C:\Users\guill\build\mpblib\test\Debug\testrun.exe. Make sure that test discoverer & executors are registered and platform & framework version settings are appropriate and try again.

Я попробовал ссылку на Microsoft, похоже, она не принесла пользы. Я не понимаю, почему Visual "не может найти символы отладки", так как я строю в режиме отладки.

Я пытался смотреть в этом направлении: https://social.msdn.microsoft.com/Forums/vstudio/en-US/8a4518be-d0ae-4c4a-9838-9251d346c3a4/test-run-will-use-dlls-built-for-framework-framework45-and-platform-x86

Не уверен, что это визуальная студия, cmake или googletest.

здесь - CMakeLists.txt, используемый для построения тестов, если это необходимо.

file(
    GLOB_RECURSE _source_list 
    LIST_DIRECTORIES false
    "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp*"
    "${CMAKE_CURRENT_SOURCE_DIR}/*.hpp"
)

set(Boost_USE_STATIC_LIBS OFF) 
set(Boost_USE_MULTITHREADED ON)  
set(Boost_USE_STATIC_RUNTIME OFF)
find_package (Boost COMPONENTS date_time REQUIRED)

message("CMAKE_SOURCE_DIR : ${CMAKE_SOURCE_DIR}")


include_directories (${CMAKE_SOURCE_DIR}/mpblib/src
                     ${Boost_INCLUDE_DIRS}
                     )               


find_package(GTest REQUIRED)
find_package( Threads REQUIRED )
include(GoogleTest)

link_directories(${Boost_LIBRARY_DIRS})

include_directories(${GTEST_INCLUDE_DIRS})

add_executable (testrun ${_source_list})
target_link_libraries (testrun                       
  ${Boost_DATE_TIME_LIBRARY}
  ${GTEST_LIBRARIES}
  ${GTEST_MAIN_LIBRARIES}
  Threads::Threads
  mpblib
  )

gtest_discover_tests(testrun TEST_PREFIX new:)

foreach(_source IN ITEMS ${_source_list})
    get_filename_component(_source_path "${_source}" PATH)
    file(RELATIVE_PATH _source_path_rel "${CMAKE_CURRENT_SOURCE_DIR}" "${_source_path}")
    string(REPLACE "/" "\\" _group_path "${_source_path_rel}")
    source_group("${_group_path}" FILES "${_source}")
endforeach()

любая помощь будет принята с благодарностью!

...