将生成的JUnit XML传递给另一个过程,该过程将读取的Timestamp作为本地时区,因此最终将日期推迟了4个小时。
这是我们正在运行的ANT脚本的片段:
<tstamp>
<format property="datetimeTZ" pattern="EEE, MMM dd, yyyy hh:mm:ss a z"/>
</tstamp>
<echo>the current date is ${datetimeTZ}</echo>
<junit printsummary="yes" fork="no" haltonfailure="yes">
<formatter type="xml" />
<test name="SomeTest"/>
<classpath>
<path refid="classpath" />
</classpath>
</junit>
ANT控制台将显示正确的本地时间,但是生成的JUnit XML包含:
<testsuite errors="0" failures="0" hostname="MyHost" name="SomeTest" tests="2" time="0.566" timestamp="2018-07-02T20:00:27">
时间戳为:“ 2018-07-02T20:00:27”
问题在于它已在@美国东部时间2018-07-02T16:00:27运行
我尝试使用以下方法在分支的JVM上设置用户时区:
<jvmarg value="-Duser.timezone=US/Eastern"/>
但是产生了相同的XML。
我能找到的唯一其他答案是使用XLS进行显示或使用XSLT进行翻译[link]
我无法控制ANT Jar,因为它们是Jenkins下载的库存。
是否缺少使XML结果包含本地时间戳的ANT或Java参数?