Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C语言中使用带有CTest的check库进行单元测试_C_Cmake_Ctest_Check Framework - Fatal编程技术网

如何在C语言中使用带有CTest的check库进行单元测试

如何在C语言中使用带有CTest的check库进行单元测试,c,cmake,ctest,check-framework,C,Cmake,Ctest,Check Framework,我有一个项目,我想在其中使用库进行单元测试 我当前的项目使用CMake,具有以下结构: . ├── CMakeLists.txt ├── COPYING ├── ChangeLog ├── README ├── src │   ├── core │ │   ├── CMakeLists.txt │ │ └── main.c │   ├── core-test │ │   ├── CMakeLists.txt │ │ └── main.c │ └── scrypt └─

我有一个项目,我想在其中使用库进行单元测试

我当前的项目使用CMake,具有以下结构:

. ├── CMakeLists.txt ├── COPYING ├── ChangeLog ├── README ├── src │   ├── core │ │   ├── CMakeLists.txt │ │ └── main.c │   ├── core-test │ │   ├── CMakeLists.txt │ │ └── main.c │ └── scrypt └── doc └── protocol.txt . ├── CMakeLists.txt ├── 临摹 ├── 变更日志 ├── 自述 ├── src │   ├── 核心 │ │   ├── CMakeLists.txt │ │ └── main.c │   ├── 岩心测试 │ │   ├── CMakeLists.txt │ │ └── main.c │ └── 刺耳 └── 医生 └── protocol.txt 在
核心测试
中,我对
核心
模块进行了单元测试。在
scrypt测试中
我将对
scrypt
模块等进行测试


检查
与CTest一起使用是否有意义


如果是:如何将使用
check
的单元测试连接到CMake/CTest项目?我是否需要额外的CTest配置来解释启用了
check
的可执行文件的结果?

使用
check
进行CTest是可能的,不幸的是不方便

当使用
check
的单元测试失败时,它们将被视为CTest中的失败。问题是,CTest不会显示失败的应用程序的输出1。另一个缺点是CTest不计算单个
检查
测试,因此“单个”失败测试可能意味着多个
检查
测试。我无法找到让CTest解释检查结果的方法


  • 您可以通过在生成目录(与运行
    make
    ctest
    的目录相同)中创建具有以下内容的
    CTestCustom.cmake
    文件来强制打印输出:

    设置(CTEST\U自定义\U测试后“cat测试/临时/LastTest.log”)