在Bazel中,可以使用Bazel的内置工具来进行测试和覆盖率测试。如果测试正常通过但覆盖率测试失败,可能有几种原因。以下是一些可能的解决方法:
load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")
git_repository(
name = "bazel_skylib",
remote = "https://github.com/bazelbuild/bazel-skylib.git",
commit = "HEAD",
)
load("@bazel_skylib//skylib:repositories.bzl", "skylib_repositories")
skylib_repositories()
load("@bazel_skylib//skylib:coverage.bzl", "coverage_repositories")
coverage_repositories()
cc_test(
name = "my_test",
srcs = ["my_test.cc"],
deps = [
":my_library",
"@gtest//:gtest_main",
],
coverage = True, # 开启覆盖率测试
)
# .bazelrc
build --instrumentation_filter="-test.cc$"
test --collect_code_coverage
bazel coverage //path/to/package:target_test
通过检查以上几个方面,您应该能够解决测试正常但覆盖率测试失败的问题。