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

时间:2017-06-26 03:09:54

标签: bazel

正如bazel测试百科全书所说,UTC是bazel时区。我想知道有什么方法可以让bazel使用系统区域,Local

2 个答案:

答案 0 :(得分:1)

您可以使用--action_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获取环境变量更改。我就此提出了a bug

答案 1 :(得分:0)

如果测试是java_test,则可以使用user.timezone JVM标志作为java_test规则的属性。如,

java_test(
    name = "Test",
    test_class = "TZTest",
    srcs = [
        "TZTest.java",
    ],
    jvm_flags = [
        "-Duser.timezone=EST",
    ],
)

您可以确认这适用于TimeZone.getDefault().getDisplayName()