Unit testing 使用CMake在CLion中使用多个Main进行Google单元测试
各位 在我特定的Clion项目中,我有几个cpp单元测试文件(google测试),每个文件都有它的主测试。我正在寻找一种方法,以一种简单的方式运行项目的所有单元测试。现在,我只能单独运行每个目标,我不想为所有测试创建一个唯一的main OBS:cpp单元测试文件组织在“测试”文件夹内的不同文件夹中 谁能帮我Unit testing 使用CMake在CLion中使用多个Main进行Google单元测试,unit-testing,cmake,googletest,clion,Unit Testing,Cmake,Googletest,Clion,各位 在我特定的Clion项目中,我有几个cpp单元测试文件(google测试),每个文件都有它的主测试。我正在寻找一种方法,以一种简单的方式运行项目的所有单元测试。现在,我只能单独运行每个目标,我不想为所有测试创建一个唯一的main OBS:cpp单元测试文件组织在“测试”文件夹内的不同文件夹中 谁能帮我 请注意,CLion只是使用CMake来驱动构建。CMake已经生成了一个运行所有测试的目标,运行maketest 在Clion中添加运行进行测试的配置在Clion中,导航到运行>编辑配置…
请注意,CLion只是使用CMake来驱动构建。CMake已经生成了一个运行所有测试的目标,运行
maketest
在Clion中添加运行
进行测试的配置在Clion中,导航到运行>编辑配置…
在左侧面板上方,单击加号(+)图标,然后选择谷歌测试
在右侧,将名称字段设置为描述性字段
将Target字段设置为希望运行其单元测试的CMake项目名称。如果未列出要查找的目标,则必须检查以确保正确配置了CMakeLists.txt文件
单击确定或应用按钮后,这将在运行配置中列出,并将为要测试的可执行文件运行所有单元测试。OP提到的问题是,存在多个包含二进制文件的目标。Google测试控件只允许一个目标。答案是使用复合执行
首先,如果不熟悉此概念,请回顾:
其次,遵循以下步骤:
步骤:
为要包括的每个测试可执行文件创建单独的GTest测试配置李>
创建复合执行配置并添加在步骤1)中创建的各个执行李>
从运行菜单执行新的复合配置
若要获得结果的统一视图,请在弹出提示询问时启用“运行仪表板”
<> LI>可以考虑与其他用户共享执行规范。
您正在使用哪个构建系统?我不知道CLion,但大多数构建系统允许定义依赖于其他系统的自定义目标。您可以定义一个自定义目标运行所有测试
,具体取决于运行每个测试
。这是一个CMake问题,它完全独立于CLion:如果您在CMakeLists.txt中对其进行修复,该修复将在使用CLion和不使用CLion的情况下都能工作。您应该在googletest测试套件中拥有一个main
函数。你为什么要对抗它?为什么不将目标添加到ctest?”4.要获得结果的统一视图,请在弹出提示“…询问时启用“运行仪表板”。。。我没有收到弹出提示(可能已更改,我使用的是2020.3.1版)。如何手动获取统一视图?如果我现在运行几个测试,它们都将连续运行,并覆盖测试结果树,如果测试失败,执行不会停止。