Недавно я начал изучать cmake и столкнулся с небольшой проблемой. Я получил как свои исполняемые, так и модульные тесты для компиляции из сгенерированного файла makefile без проблем. Если я запустил ./test
в каталоге сборки, тесты, созданные в UnitTest ++, выполняются и завершаются, как ожидалось, распечатывая результаты. Есть ли способ получить make test
, чтобы просто запустить тестовый исполняемый файл, а не запускать его внутри рамки ctest, или я должен идти об этом по-другому?Вызов Unittest ++ из созданного make-файла cmake
Вот минимальный рабочий пример моего кода:
SRC/главная/main.c является простой пуст основной функцией
SRC/тест/testMain.cpp:
#include <UnitTest++/UnitTest++.h>
TEST(FailSpect)
{
CHECK(false);
}
int main()
{
UnitTest::RunAllTests();
}
CMakeLists.txt:
cmake_minimum_required(VERSION 2.6)
project(myProject)
enable_testing()
set(myProjectMain
src/main/main.c
)
set(myProjectSrc
)
set(myProjectTestSrc
src/test/testMain.cpp
)
add_executable(myExecutable ${myProjectMain} ${myProjectSrc})
add_executable(testSuite ${myProjectTestSrc} ${myProjectSrc})
target_link_libraries(testSuite UnitTest++)
add_test(testExe testSuite)
make test
выход:
Running tests...
Start processing tests
Test project /myProjectDir/build
1/ 1 Testing testExe Passed
100% tests passed, 0 tests failed out of 1
./testSuite
выход:
/myProjectDir/src/test/testMain.cpp:5: error: Failure in FailSpect: false
FAILURE: 1 out of 1 tests failed (1 failures).
Test time: 0.00 seconds.