【发布时间】:2014-01-09 02:13:28
【问题描述】:
我最近开始学习 cmake,遇到了一个小问题。我得到了我的可执行文件和单元测试,可以从生成的 makefile 编译,没有问题。如果我在构建目录中运行./test,则在 UnitTest++ 中创建的测试会按预期运行并完成,并打印结果。有没有办法让make test 简单地运行测试可执行文件而不是在 ctest 框架中运行它,还是我应该以不同的方式来解决这个问题?
这是我的代码的最小工作示例:
src/main/main.c 是一个简单的空主函数
src/test/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.
【问题讨论】:
标签: cmake