如何为bazel测试提供时区标志?

如何为bazel测试提供时区标志?,bazel,Bazel,正如bazel测试百科全书所说,UTC是bazel时区。我想知道有没有办法让bazel使用system zone,即Local 您可以使用--action\u env传递环境值,例如 bazel test --test_output=all --action_env=TZ=Local :tz_test INFO: From Testing //:tz_test: ==================== Test output for //:tz_test: timezone: Local ==

正如bazel测试百科全书所说,
UTC
是bazel时区。我想知道有没有办法让bazel使用system zone,即
Local

您可以使用
--action\u env
传递环境值,例如

bazel test --test_output=all --action_env=TZ=Local :tz_test
INFO: From Testing //:tz_test:
==================== Test output for //:tz_test:
timezone: Local
================================================================================
Target //:tz_test up-to-date:
  bazel-bin/tz_test
INFO: Elapsed time: 1.034s, Critical Path: 0.05s
//:tz_test                                                               PASSED in 0.0s

请注意,这不会“取消缓存”测试结果,因此您必须首先运行
bazel clean
,让bazel获取环境变量更改。我对此进行了归档。

如果测试是
java\u测试
,您可以使用
user.timezone
JVM标志作为
java\u测试
规则的属性。例如:

java_test(
    name = "Test",
    test_class = "TZTest",
    srcs = [
        "TZTest.java",
    ],
    jvm_flags = [
        "-Duser.timezone=EST",
    ],
)
您可以确认这在
时区.getDefault().getDisplayName()
中有效