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
即使我从时间模式中删除了秒数,它也与生成的报告名称不匹配。我怎样才能解决这个问题?任何人都可以帮助我...在此先感谢。
我认为最可能的解释如下:
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
...
我使用的是 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
即使我从时间模式中删除了秒数,它也与生成的报告名称不匹配。我怎样才能解决这个问题?任何人都可以帮助我...在此先感谢。
我认为最可能的解释如下:
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
...