如何写一个功能测试脚本的cmake下运行/ CTEST
在cmake的,在一个CMakeList.txt
如何写一个功能测试脚本的cmake下运行/ CTEST
enable_testing()
add_test(<test_name> <test_command>)
足矣下面的命令来创建可通过外壳命令ctest
执行的测试。
不幸的是,cmake文档并没有提供什么构成有效的测试可执行文件(<test_command>
)。通常,测试可执行文件是使用像google-test这样的框架生成的。这有点牵扯,但网络中有很好的例子展示了如何在cmake下的谷歌测试下进行测试。
现在我想将cmake/ctest的使用扩展到无需编译的功能测试脚本,因此无法在google-test下运行。从那里,我的问题:什么是可以通过add_test
直接启动有效的手写测试可执行文件:
- 难道我的测试可执行文件生成输出?它写入标准输出或标准错误吗?
- 我的测试可执行文件是否应返回某些值以指示成功或失败?
- 或者在cmake文档中我可以找到答案?
如果测试通过,您的可执行文件应该返回零,否则返回非零值。输出被忽略。 add_test
的文档没有提到这一点。
谢谢。那么使用'ctest -V'可以获得额外的输出呢?不是通过stdout或stderr生成的吗? –
是的,测试的stdout和stderr都用'ctest -V'显示。但这仅限于人工监督或调试。 'ctest'本身会忽略测试的stdout和stderr。 –
我在https://cmake.org/Bug/view.php?id=15798报告缺少文档。 –
他们迅速回应,3.5文档将包含答案:https://cmake.org/gitweb?p = cmake.git; a =commitdiff; h = f19d6a2c。 –