【发布时间】:2017-08-22 10:17:14
【问题描述】:
关于 cmake 和 ctest 有很多我不明白的地方。我实际上找不到很好的教程或可以很好地解释 ctest 的东西。
我尝试为我的代码编写一些测试。我将测试放在不同的函数中,这些函数都是从 main.cpp 调用的,如下所示:
int main()
{
test1();
test2();
test3();
...
exit(0);
}
我创建了一个 CMakeLists.txt 来创建目标测试。
set (TESTS
main.cpp
)
add_executable (tests ${TESTS})
target_link_libraries (tests ...)
enable_testing()
add_test(my-test tests)
现在我可以调用 ctest run
$ ctest run
Test project /.../tests
Start 1: my-test
1/1 Test #1: my-test ......................... Passed 0.01 sec
100% tests passed, 0 tests failed out of 1
Total Test time (real) = 0.01 sec
但这只给了我一个测试用例,尽管在内部我有多个测试用例,每个测试用例都在一个单独的函数中。我可以将函数提取到单独的文件中,但这样我就有数百个文件。如何避免每个测试都有单独的文件?
我一直在寻找这样的东西。
add_test( test1 tests::test1() )
add_test( test2 tests::test2() )
我完全意识到这是错误的和幼稚的等等。但我希望你能了解我的问题。
【问题讨论】: