打电话 localDate.getDayOfWeek().getDisplayName
在我的unittest中,在circleci上运行unittest返回的值与在本地运行unittest不同。
以下是简化的示例代码:
LocalDate localDate = LocalDate.of(2019, 12, 20);
String dayOfWeek = localDate.getDayOfWeek().getDisplayName(TextStyle.SHORT, Locale.GERMANY);
assertEquals("Fr", dayOfWeek); // actual = "Fr."
``` `dayOfWeek` 仅在ci上包含“.”,但我不知道为什么以及如何(正确地)修复它。
这是unittest的错误日志:
junit.framework.ComparisonFailure: expected:<Fr[.]> but was:<Fr[]>
..
提示:我正在使用3Ten android backport
更新如@olev.v.和@arvind kumar avinash所述不同行为(local和ci)的原因是jdk版本(local 8.x和ci 11.x)的不同。
这就留下了我的一部分问题:“如何正确地解决这个问题?”这是更改ci docker映像上jdk版本的正确/唯一方法吗?
1条答案
按热度按时间btqmn9zl1#
更新:
在研究了更新后的问题之后,这个问题似乎是因为circleci运行的机器上缺少了一个由310个android backport组成的库。在没有这个库的情况下,它可能默认为
java.time
在这台机器上重新编译代码时。你应该检查一下这台机器上的一些东西:如果库已成功导入。
如果有任何设置,在缺少某些类型时自动导入最合适的类型。
如果jdk版本与本地计算机的版本相同。
原始答案:
您可以单独使用textstyle.short\u
输出:
我没有得到一个点的输出
TextStyle.SHORT
在我的系统里。不过,如果你还想用TextStyle.SHORT
如果没有点(或任何标点符号),可以用一个空白字符串替换每个标点符号。输出:
注:结果为
TextStyle.SHORT
更改java.time
api如下所示:输出: