是的,Bazel支持通过依赖关系来控制测试执行顺序。你可以使用Bazel的BUILD文件来定义测试目标,并使用test_suite规则来指定测试的执行顺序。
以下是一个示例:
在BUILD文件中,定义一个test_suite规则:
load("@bazel_skylib//lib:paths.bzl", "paths")
test_suite(
name = "my_tests",
tests = [
":test1",
":test2",
":test3",
],
)
在同一个BUILD文件中,定义测试目标:
sh_test(
name = "test1",
srcs = ["test1.sh"],
data = [":testdata"],
)
sh_test(
name = "test2",
srcs = ["test2.sh"],
data = [":testdata"],
)
sh_test(
name = "test3",
srcs = ["test3.sh"],
data = [":testdata"],
)
在上面的示例中,test_suite
规则指定了测试执行的顺序。在这个例子中,test1
将首先执行,然后是test2
,最后是test3
。
你可以使用bazel test
命令来运行这个test_suite:
bazel test //path/to/package:my_tests
请注意,Bazel不能保证测试的执行顺序,除非你明确地使用test_suite
规则来指定顺序。默认情况下,Bazel会并行执行测试。