可以在 test 的过程中使用 bazel run 命令来运行测试。这可以通过在BUILD文件中将被测试的目标添加到测试目标的依赖中来实现。
示例:
假设我们有一个名为 "my_app" 的项目,其中包含符合 Google Test 框架要求的测试目标 "my_app_test" 和一个可执行目标 "my_app_exe",其中包含生产代码。我们可以编写以下 BUILD 文件:
cc_test( name = "my_app_test", srcs = ["my_app_test.cc"], deps = [ "//my_app:my_app_lib", ], )
cc_library( name = "my_app_lib", srcs = ["my_app.cc"], )
cc_binary( name = "my_app_exe", srcs = ["my_app_main.cc"], deps = [ "//my_app:my_app_lib", ], )
注意,我们将 "my_app_exe" 添加到了 "my_app_test" 的依赖中。
然后,我们可以使用以下命令来运行测试:
bazel test //my_app:my_app_test
在运行测试的过程中,bazel 会自动构建 "my_app_exe" 并使用它来运行测试。如果我们需要传递一些参数给 "my_app_exe",可以使用 --test_arg 命令行标志。
例如,如果我们需要将 "my_app_exe" 的日志级别设置为调试模式,可以使用以下命令:
bazel test //my_app:my_app_test --test_arg="--log_level=debug"
这将把参数 "--log_level=debug" 传递给 "my_app_exe"。