簡體   English   中英

Python 單元測試在本地通過,但在比較日期時在 Jenkins 中失敗

[英]Python unit test passes locally, but fails in Jenkins when comparing dates

以下測試在本地通過,因為本地是 EST:

    def test_get_local_ts(self):
        dt = Utils.get_local_ts().strftime('%Y-%m-%d')
        dt1 = datetime.now().strftime('%Y-%m-%d')
        self.assertEqual(dt, dt1)

但在 Jenkins 管道中運行時失敗。

因為 Jenkins 服務器在 UTC 時間運行,但get_local_ts方法返回的是本地時間。

所以這個錯誤發生了:

self.assertEqual(dt, dt1)

斷言錯誤:“2021-12-16”!=“2021-12-17”

此外,這只會在美國東部標准時間晚上 7 點之后運行它時失敗,此時 UTC 會滾動到第二天。

我怎樣才能讓它隨時在本地和 Jenkins 中通過?

謝謝!

如果您的單元測試涉及 datetime 對象,那么您可能應該將時區設置為測試設置的一部分。 單元測試應該在受控條件下運行,而不依賴於外部因素。

https://docs.python.org/3/library/time.html#time.tzset

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM