测试资源的Bazel-输入路径不存在:

测试资源的Bazel-输入路径不存在:,bazel,Bazel,我正在尝试使用Bazel进行java测试。并且需要访问资源下的数据文件。我的项目有标准的Maven结构。我使用文件组作为资源,并将其作为java_测试中的依赖项。 问题是当我尝试运行测试时,它失败,出现以下错误java.lang.RuntimeException:org.apache.hadoop.mapred.InvalidInputException:输入路径不存在:文件:/private/var/tmp/_bazel_username/2c26269e9af968f4ce3e88b2272

我正在尝试使用Bazel进行java测试。并且需要访问资源下的数据文件。我的项目有标准的Maven结构。我使用文件组作为资源,并将其作为java_测试中的依赖项。 问题是当我尝试运行测试时,它失败,出现以下错误
java.lang.RuntimeException:org.apache.hadoop.mapred.InvalidInputException:输入路径不存在:文件:/private/var/tmp/_bazel_username/2c26269e9af968f4ce3e88b22720114e/execroot/myproject/bazel out/darwin fastbuild/bin/hadoop/com_company\u hadoop\u search\u join\u TermTest.jar/com/company/hadoop/search/join/names.txt
我的src/test/resources/BUILD中有以下内容:

filegroup(
    name = "resources",
    testonly = 1,
    srcs = glob(["**/*.txt"]),
    visibility = ["//visibility:public"],
)
在我的hadoop/BUILD中有以下内容:

java_test(
    srcs = 
        ["src/test/java/com/company/hadoop/search/join/TermTest.java"],
    resources = ["//hadoop/src/test/resources:resources"],
deps = [
        "//src/main/java/com/path/to/my/code",
        "//:junit_junit",
    ],    
)
我验证了测试jar内容和文本文件是否如预期的那样存在。

我相信您的测试“资源”不是java资源,而是数据文件

使用:

请看一看[
java_test(
    srcs = [
        "src/test/java/com/company/TermTest.java",
    ],
    data = [
        "//hadoop/src/test/resources:resources",
    ],
    deps = [
        "//src/main/java/com/path/to/my/code"
    ],    
)