java - 如何在自定义测试运行器中将 Bazel 标签解析为其 jar,以便能够提取打包的单元测试?
问题描述
使用 Bazel,我们有一个宏,我们从 BUILD 文件中调用它来调用我们的自定义测试运行器。此宏对 java_test 进行本地调用,类似于:
native.java_test(
name = name,
srcs = srcs,
resources = resources,
use_testrunner = False,
main_class = "com.example.CustomTestRunner",
args = srcs,
deps = deps,
runtime_deps = runtime_deps + ["//bazel/tools/testng:testng_runner"],
**kwargs
)
在我们的 BUILD 文件中,调用宏的目标类似于:
java_custom_test(
name = "test",
srcs = glob(["src/test/java/**/*.java"]) + [
":sdk_gen_model_test",
":sdk_gen_controller_test",
],
resources = glob(["src/test/resources/**/*"]),
deps = [
"@maven//:org_mockito_mockito_core",
"@maven//:org_testng_testng",
],
)
将 srcs 传递给宏中的 args,希望在 CustomTestRunner 中我可以访问所有单元测试文件,这对于 glob(["src/test/java/**/*.java"] 标识的那些文件是正确的)。
但是,在 ":sdk_gen_model_test" 和 ":sdk_gen_controller_test" 的情况下,这两个是指生成单元测试的目标,这些目标会打包到一个 jar 中。不幸的是,这两个标签字符串按原样传递给 CustomTestRunner,我很难弄清楚如何从它们中解析生成的 jar。
所以问题是,我怎样才能让 Bazel 将这两个目标生成的文件列表传递给 CustomTestRunner,或者至少有一些方法可以将这些标签解析为 jar,以便我可以在 CustomTestRunner 中提取文件?
解决方案
推荐阅读
- ios - Ionic 4.2.1 模态内存泄漏
- json - 特定字符串后 Hive 中的正则表达式
- python - 使用 HTTPS/URLLIB 和 Python 在给定站点 (Jalopnik) 上执行搜索
- sql - 使用 BCP 不断收到导入错误“字符串数据,右截断”
- python - 如何从另一个目录运行 Python pipenv?
- python - 子数组中元素的平均值
- php - 如何确保图像已在 Laravel 5 中正确提供?
- tomcat - nginx反向代理spring安全认证GET而不是POST
- javascript - 向已有参数的函数 prop 添加参数
- python - 计算嵌套列表中的所有元组元素