可以将Bazel和JUnit4Runner与junit Categories一起使用,只需在Bazel WORKSPACE文件中添加JUnit软件包,然后在BUILD文件中添加依赖项即可。 例如,假设我们的测试需要使用“slow”和“fast”类别,可以按照以下步骤进行操作:
1.在WORKSPACE中添加JUnit软件包,如下所示:
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "junit", url = "https://github.com/junit-team/junit4/archive/r4.12.tar.gz", sha256 = "67e96d296c92069fec0f821db5d7d17b2b1b1f5ba74e988f6db4d9efc2f3c9cd", strip_prefix = "junit4-r4.12" )
2.在BUILD文件中添加“//test”规则,使用JUnit的categories参数。例如:
java_test( name = "example_test", srcs = [ "ExampleTest.java", ], visibility = ["//visibility:public"], deps = [ "//src/main/java/com/example", "@junit//jar", "@hamcrest//jar", ], tags = ["example_test"], categories = [ "slow", "fast", ], )
3.然后在命令行中运行Bazel测试,“slow”和“fast”的类别都会被包含在内。例如:
bazel test //test:all --test_tag_filters=-manual,-flaky
注意:categories参数与tags的另一个区别在于categories不能被过滤。