vscode通过插件一键运行 c++单元测试

本文详细介绍如何在Ubuntu18.04上全局安装并配置googletest,利用cmake引入该库进行C++单元测试,并借助vscode插件实现一键运行单个测试用例,极大提升开发效率。

gtest使用初探

简介: 本文在 ubuntu18.04 上实现了 googletest 的全局安装,并在一个 demo项目中演示了使用 cmake 引入了该库,实现了在命令行中运行 c++ 单元测试,包括运行单个 TEST 函数。另外通过 vscode 的插件 C++ TestMate, 实现了像 golang 那样的通过点击按钮即可运行单个测试,极大地方便了开发。

一、在命令行中使用googletest

a. 安装

补充文档 gtest详细安装教程

  1. 下载安装包,此命令只会下载源码到 /usr/src
    sudo apt-get install libgtest-dev
  2. 编译并拷贝
# 先去到 /usr/src/gtest 
$sudo cmake && sudo make
# 头文件会自动安装(/usr/include/gtest),但是库文件需要手动拷贝到系统搜索路径下
$sudo cp libgtest* /usr/lib/

b. 在项目中通过cmake引用

  1. 通过cmake 自带的 find_package 包管理命令来引入,以下 cmake文件是一部分,本质上生成 unit test的执行函数和普通的 c++ 可执行文件没有大的区别
find_package(GTest REQUIRED)
include_directories(${GTEST_INCLUDE_DIRS})
add_executable(runTests test/main_test.cpp)
target_link_libraries(runTests ${GTEST_BOTH_LIBRARIES} pthread)
install(TARGETS runTests)

find_package 会通过 /usr/share/cmake-3.25/Modules/FindGTest.cmake 这个文件来查找整个 GTest的库位置。 补充文档,关于 find_package 详细原理

c. 运行

执行完 cmake 和 make install 之后,去到 runTests 文件的安装路径

  • runTests --gtest_list_tests 列出所有的tests
  • runTests --gtest_filter=pico.test1 可以单独跑某个 test
    补充文档, googletest 详细教程

二、配合 vscode 插件一键运行UT

a. 安装和配置插件

在vscode 的插件搜索栏中搜索 googletest, 选择C++ TestMate 安装
配置,在 .vscode/setting中增加编译出来的可执行 test 文件的目录
补充文档 插件具体配置

# 配置成ut执行文件的路径,支持正则匹配
"testMate.cpp.test.advancedExecutables": [{"pattern":"${workspaceFolder}/cxx-lab/install/bin/*Tests"}],

避坑:在我的电脑上,普通的配置(test.executables + test.workingDirectory的模式)没有作用,只有 test.advancedExecutables 有作用,原因未知。

效果图
请添加图片描述

该插件,不仅可以运行 ut, 还可以进行 debug 操作,可以说是非常方便了

<think>好的,我现在需要帮助用户解决如何在VSCode中配置自动单元测试的问题。首先,我得回忆一下VSCode的相关功能和插件。用户提到的“自动单元测试”可能指的是在代码修改后自动运行测试,或者一键运行测试的功能。 接下来,我应该考虑不同的编程语言,因为配置方法可能因语言而异。比如,JavaScript/TypeScript通常使用Jest或Mocha,Python可能用pytestunittest,而C#则用NUnit或xUnit。所以,我需要给出通用的步骤,并针对不同语言给出具体例子。 然后,我需要参考用户提供的引用内容。引用[2]提到了Karma和Jasmine,这适用于Angular项目,可能和JavaScript相关。引用[1]提到Google TestTest Explorer,这可能与C++相关。但用户的问题是关于VSCode的配置,所以可能需要结合这些测试框架和VSCode插件。 首先,安装测试插件。比如Python需要安装Python扩展,JavaScript可能需要Jest Runner。然后配置测试框架,比如在settings.json中指定测试命令或路径。另外,自动触发测试可能需要设置监视模式或使用VSCode的任务功能。 可能还需要提到如何利用VSCode的测试资源管理器来统一管理测试用例,以及如何配置launch.json或tasks.json来自动运行测试。比如,对于JavaScript项目,可以用npm脚本结合VSCode的任务来在保存时运行测试。 此外,用户可能需要了解如何查看测试结果,如何调试失败的测试用例。比如,设置断点,使用调试配置等。 最后,生成相关问题,需要围绕单元测试配置的扩展、调试方法、与CI集成、常见问题等展开。 需要注意的是,用户的引用中有提到Karma、Google Test、systemd脚本等,但主要问题在VSCode配置,所以重点应放在编辑器设置和插件使用,而不是具体的测试框架细节。同时,确保步骤清晰,分点说明,让用户能一步步操作。</think>以下是在Visual Studio Code中配置自动单元测试的分步指南: ### 一、基础环境配置 1. **安装测试框架扩展**: - Python:安装Microsoft官方Python扩展(ID: ms-python.python) - JavaScript/TypeScript:安装Jest Runner(ID: firsttris.vscode-jest-runner) - Java:安装Java Test Runner(ID: vscjava.vscode-java-test) - C/C++:安装C/C++ TestMate(ID: matepek.vscode-catch2-test-adapter) 2. **配置测试命令**: 在项目根目录创建`.vscode/settings.json`文件: ```json { "python.testing.pytestArgs": ["tests"], "python.testing.unittestEnabled": false, "python.testing.pytestEnabled": true } ``` (Python示例配置pytest框架[^4]) ### 二、自动测试实现方案 1. **实时监测模式**: - 在终端执行`pytest --verbose
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值