加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
Sconstruct 1.26 KB
一键复制 编辑 原始数据 按行查看 历史
suse110 提交于 2018-08-12 12:12 . add scons script
#! coding:utf-8
import os
PROG = 'test.exe'
# 将源码从src复制到build再执行构建
VariantDir('chapter06/ci00/build', 'chapter06/ci00/src')
GTEST_HOME = './googletest/googletest/'
GTEST_INCLUDE = os.path.join(GTEST_HOME, 'include')
# 分析代码覆盖率,GCC编译选项要添加-fprofile-arcs -ftest-coverage
testEnv = Environment(
ENV = os.environ, # 继承环境变量,防止找不到scons
CCFLAGS='-ggdb -Wall -I %s' % (GTEST_INCLUDE), # C/C++公用编译选项,CXXFLAGS为仅适用于指定C++的编译选项
CFLAGS='-fprofile-arcs -ftest-coverage', # C编译选项
LINKFLAGS='-fprofile-arcs -ftest-coverage',
LIBPATH=GTEST_HOME,
LIBS=['libgtest', 'pthread' ]
)
sources = Glob('build/*.c')
testSources = Glob('build/*.cc')
# 处理结果保存在testProg中,其中保存了a.out文件的对象(Scons.Node.FS.File)
testProg = testEnv.Program(PROG, sources + testSources)
testReport = testEnv.Command('test_report.xml', testProg, PROG + " --gtest_output=xml:${TARGET}")
# gcovr
# -x 生成结果为xml格式
# -r build 从build目录获取覆盖率数据
# -o 指定输出的报告名
coverageReport = testEnv.Command('coverage.xml', testReport, "gcovr -x -r build -o ${TARGET}")
# 默认构建
Default(coverageReport)
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化