我有一个我想在其中使用的项目 check用于单元测试的库。
我当前的项目正在使用 CMake 并具有以下结构:
. ├── CMakeLists.txt ├── COPYING ├── ChangeLog ├── README ├── src │ ├── core │ │ ├── CMakeLists.txt │ │ └── main.c │ ├── core-test │ │ ├── CMakeLists.txt │ │ └── main.c │ └── scrypt └── doc └── protocol.txt
在 core-test
中,我对 core
模块进行了单元测试。在 scrypt-test
中,我将对 scrypt
模块等进行测试。
在 CTest 中使用 check
是否有意义?
如果是:如何将使用 check
的单元测试连接到 CMake/CTest 项目?我是否需要 CTest 的额外配置来解释启用check
的可执行文件的结果?
最佳答案
在 CTest 中使用 check
是可能的,不幸的是不方便。
当使用 check
的单元测试失败时,它们将被计为 CTest 中的失败。问题是,CTest 不显示失败的应用程序的输出1。另一个缺点是 CTest 不计算单个 check
测试,因此“单个”失败测试可能意味着多个 check
测试。我找不到让 CTest 解释检查结果的方法。
您可以通过在 build 目录中创建
CTestCustom.cmake
文件来强制打印输出(与您运行make
或ctest
),内容如下:set (CTEST_CUSTOM_POST_TEST "cat Testing/Temporary/LastTest.log")
关于c - 如何使用带有 CTest 的检查库在 C 中进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9151953/