如何单独构建并运行clang-format(libFormat)的单元测试
如何单独构建并运行clang-format(libFormat)的单元测试
我太懂这种跑全量测试熬半天的痛苦了!针对clang-format对应的单元测试,其实有几个高效的操作方式,完全不用跟ninja check-all死磕:
第一步:单独构建测试目标
进入你的LLVM构建目录,直接运行:ninja FormatTests这个命令只会编译
unittests/Format/FormatTest.cpp相关的测试代码以及它依赖的libFormat库,速度比全量构建快得多,改完代码后重新执行这个命令就能快速更新测试二进制。第二步:运行测试的两种方式
- 直接执行测试二进制
构建完成后,测试二进制文件位于构建目录的unittests/Format/子目录下,直接运行它就能执行所有clang-format单元测试:
如果只想跑某个特定的测试用例(比如你刚修改的那个失败用例),可以用Google Test的过滤参数精准定位:./unittests/Format/FormatTests# 只跑FormatTest类下的所有测试 ./unittests/Format/FormatTests --gtest_filter=FormatTest.* # 只跑某个具体测试用例,比如FormatTest.MyModifiedTest ./unittests/Format/FormatTests --gtest_filter=FormatTest.MyModifiedTest - 用llvm-lit运行
如果你习惯用LLVM的测试工具llvm-lit,也可以直接指定测试目录来运行:
它会自动识别并执行该目录下的测试,输出格式更符合LLVM测试套件的风格。llvm-lit unittests/Format/
- 直接执行测试二进制
这样每次修改代码后,只需要重新构建FormatTests再运行对应的测试,就能快速验证结果,不用再等全量测试跑完啦!
备注:内容来源于stack exchange,提问作者Jody Hagins
相关产品推荐
相关产品推荐

