Jenkins Maven 项目中的时间戳不匹配

Timestamp mismatch in Jenkins Maven project

我使用的是 Jenkins 版本 2.289.3。我正在其中开发一个 Maven-TestNG Selenium 项目。我添加了 Build Timestamp 插件,并在 Manage Jenkins -> Configure System -> Build Timestamp 中设置它,模式 yyyy.MM.dd.HH.mm.ss of Asia/Calcutta。我在 Post 该作业配置的构建操作中使用 Publish Html 报告。我给 HTML 目录存档的路径是:

test-output\reports\report_${BUILD_TIMESTAMP}

但是当运行这个作业时,发布html报告的时间戳不匹配。我的 comsole 输出的结束部分如下:

ChromeDriver was started successfully.
Aug 03, 2021 4:55:46 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 41.343 sec - in TestSuite

Results :

 Tests run: 4, Failures: 0, Errors: 0, Skipped: 0

  [WARNING] Could not delete temp directory 
  C:\Users\CS1027C\.jenkins\workspace\SeleniumTestNG\target\surefire because Directory 
  C:\Users\CS1027C\.jenkins\workspace\SeleniumTestNG\target\surefire unable to be deleted.
[JENKINS] Recording test results
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  01:05 min
[INFO] Finished at: 2021-08-03T16:56:22+05:30
[INFO] ------------------------------------------------------------------------
Waiting for Jenkins to finish collecting data
[JENKINS] Archiving C:\Users\CS1027C\.jenkins\workspace\SeleniumTestNG\pom.xml to 
MockTest/MockFrameTest/0.0.1-SNAPSHOT/MockFrameTest-0.0.1-SNAPSHOT.pom
channel stopped
[htmlpublisher] Archiving HTML reports...
 [htmlpublisher] Archiving at PROJECT level 
 C:\Users\CS1027C\.jenkins\workspace\SeleniumTestNG\test- 
output\reports\report_2021.08.03.16.54.51 to 
C:\Users\CS1027C\.jenkins\jobs\SeleniumTestNG\htmlreports\HTML_20Reports
ERROR: Specified HTML directory 'C:\Users\CS1027C\.jenkins\workspace\SeleniumTestNG\test- 
output\reports\report_2021.08.03.16.54.51' does not exist.
Build step 'Publish HTML reports' changed build result to FAILURE
Finished: FAILURE

此处 Chrome 浏览器从 4.55 开始,但在 post 构建操作目录创建的时间戳包含 4.54。为什么不占用测试的完成时间?我可以看到在 jenkins 工作区生成的报告文件夹是:

report_2021.08.03.16.55.36

即使我从时间模式中删除了秒数,它也与生成的报告名称不匹配。我怎样才能解决这个问题?任何人都可以帮助我...在此先感谢。

我认为最可能的解释如下:

Build Timestamp plugin:

Export build timestamps to build env variables.

这类似于通过构建参数和内联帮助设置环境变量 ☑ This project is parameterized reads:

Parameters allow you to prompt users for one or more inputs that will be passed into a build.

passed into a build“表示在第一个构建步骤开始之前设置环境变量。

具有以下 Execute Windows 批处理命令 构建步骤的 Freestyle 测试项目的输出证实了这一点(时间戳插件模式设置为 HH:mm:ss,S) :

@echo off
echo Build step begin: %time%
:: let 10 seconds pass 
ping -n 10 localhost > nul
echo Build step end: %time%
echo Build Timestamp: %BUILD_TIMESTAMP%

控制台输出:

...
Build step begin: 21:19:33,88
Build step end: 21:19:42,90
Build Timestamp: 21:19:33,828
...