Я пытаюсь интегрировать Ctest и googletest в свой проект. Я включил googletest в свой проект, как описано в https://crascit.com/2015/07/25/cmake-gtest/.
Я создал новую тестовую папку с CoreTest.cpp и CMakeLists.txt. CMakeLists содержит:
ADD_EXECUTABLE(CoreTest CoreTest.cpp)
TARGET_LINK_LIBRARIES(CoreTest corelib gtest gmock)
ADD_TEST(NAME CoreTest COMMAND CoreTest)
CoreTest.cpp содержит:
int main(int argc, char **argv)
{
testing::InitGoogleTest(&argc, argv);
//return RUN_ALL_TESTS();
return 0;
}
Это не удается:
1>------ Rebuild All started: Project: RUN_TESTS, Configuration: Debug x64 ------
1> Test project
1> Start 1: CoreTest
1> 1/1 Test #1: CoreTest .....................***Failed 1.52 sec
1>
1> 0% tests passed, 1 tests failed out of 1
Однако, если я прокомментирую строку InitGoogleTest, тест будет успешным.
Есть идеи, в чем может быть проблема?
Большое спасибо !
Спасибо Axalis! Я попытался запустить из командной строки и понял, что библиотеки googletest не попали на мой путь, что было проблемой.
Я добавил несколько тестов, но в MSVC вижу только результат ctest:
1>------ Rebuild All started: Project: RUN_TESTS, Configuration: Debug x64 ------
1> Test project
1> Start 1: CoreTest
1> 1/1 Test #1: CoreTest ..................... Passed 0.03 sec
1>
1> 100% tests passed, 0 tests failed out of 1
Есть ли способ увидеть результат googletest, как то, что я получаю с консоли ?:
>CoreTest.exe
[==========] Running 2 tests from 1 test case.
[----------] Global test environment set-up.
[----------] 2 tests from MathTest
[ RUN ] MathTest.TwoPlusTwoEqualsFour
[ OK ] MathTest.TwoPlusTwoEqualsFour (0 ms)
[ RUN ] MathTest.TwoPlusFourEqualsSix
[ OK ] MathTest.TwoPlusFourEqualsSix (0 ms)
[----------] 2 tests from MathTest (1 ms total)
[----------] Global test environment tear-down
[==========] 2 tests from 1 test case ran. (4 ms total)
[ PASSED ] 2 tests.
CoreTest
прямо из командной строки? (может быть segfault или другие подсказки, почему тест не проходит - тестовый запуск CMake показывает только состояние сбоя / успеха, но не фактические ошибки ... или вы обычно можете найти отчеты в папке Testing) - person axalis   schedule 26.10.2016RUN_TESTS
target генерируется CMake и не знает, есть ли способ контролировать параметры, используемые при выполнении команды ctest черезRUN_TESTS
. Когда вы запускаетеctest
в командной строке, вы можете добавить -V, чтобы получить весь вывод. Теперь мой вопрос: у меня такая же изначальная проблема, как и у вас. Как ты это починил? Вы передали CTest путь gtest DLL, скажем, через переменную CMake? Единственный способ заставитьRUN_TESTS
работать - это скопировать библиотеки DLL gtest в каталог установки, где находятся все библиотеки DLL моего приложения. Спасибо за ответ - person NameRakes   schedule 11.01.2017