以字符串的形式获取相对于BUILD文件的文件路径

时间:2019-07-30 20:39:43

标签: bazel

我正在使用pex_pytext,我想传递一些参数。其中一些args是文件的路径:我的源代码,以便获取覆盖率信息。有一个args参数传递给PEX-pytest可执行文件:

pex_pytest(
    name = "test",
    srcs = glob(["**/*_test.py"]),
    args = [
        "--cov=path/to/code",
        "--cov-config=path/to/.coveragerc",
    ],
    deps = [
        ":main",
        "//pylibs/test/mock",
    ],
)

因此,在这里,我希望我将得到我的主要代码(:main)和mock库,并将其放入test-pex中。然后,我想使用--cov--cov-config参数运行它。

问题是args接受一个字符串数组,而我不知道如何传递文件路径。我当时在想,如果我可以要求Bazel将标签转换为文件路径,那么我可以提供适当的标签。

如何获取相对于我的BUILD文件的路径,并将其作为字符串传递给该BUILD文件中定义的规则?

1 个答案:

答案 0 :(得分:1)

args(用于测试)应具有"make" variable substitution,所以$(location)可以工作:

"--cov=$(location :path/to/code)"