【问题标题】:Timestamp mismatch in Jenkins Maven projectJenkins Maven 项目中的时间戳不匹配
【发布时间】:2021-08-03 12:26:03
【问题描述】:

我正在使用 2.289.3 的 Jenkins 版本。我正在开发一个 Maven-TestNG Selenium 项目。我添加了 Build Timestamp 插件并在 Manage Jenkins -> Configure System -> Build Timestamp 中设置了一个模式 yyyy.MM.dd.HH.mm.ss of Asia/Calcutta。我在该作业配置的 Post Build 操作中使用 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 开始,但在构建后操作目录创建时带有包含 4.54 的时间戳。为什么它没有占用测试的完成时间?我可以看到在 jenkins 工作区生成的报告文件夹是:

report_2021.08.03.16.55.36

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

【问题讨论】:

    标签: maven jenkins selenium-webdriver testng jenkins-plugins


    【解决方案1】:

    在我看来,最可能的解释如下:

    Build Timestamp plugin:

    导出构建时间戳以构建环境变量。

    这类似于通过构建参数设置环境变量,☑ This project is parameterized 的内联帮助内容如下:

    参数允许您提示用户输入一个或多个将传递到构建中的输入。

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

    具有以下执行 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
    ...
    

    【讨论】:

    • 感谢您的回复..它现在工作正常。我在构建命令中添加了 ${BUILD_TIMESTAMP} 并在代码中使用了它的值。
    猜你喜欢
    • 2021-02-26
    • 2016-01-17
    • 2017-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-09
    相关资源
    最近更新 更多