我在CI / CD构建管道中运行了自动化测试,但是DevOps中的时间是UTC,而我的断言测试则检查本地时间。 有没有办法在我的构建管道中设置时区?
答案 0 :(得分:0)
是的。例如,以下简单的BASH脚本使用Microsoft Hosted Agent运行:
echo "checking date"
date
echo "setting date to Asia/Kolkata"
sudo timedatectl set-timezone "Asia/Kolkata"
date
结果显示在日志中:
2019-07-05T20:26:48.5992486Z checking date
2019-07-05T20:26:48.5992954Z Fri Jul 5 20:26:48 UTC 2019
2019-07-05T20:26:48.5993264Z setting date to Asia/Kolkata
2019-07-05T20:26:48.9107025Z Sat Jul 6 01:56:48 IST 2019
如您所见,您可以在代理上操纵本地时间。我不同意其他张贴者的观点,即在运行测试的情况下这样做肯定是一件坏事。
您在测试中添加了一些额外的代码来说明本地时间/目标时间,或者可以在构建代理中添加1行以实现相同的目的。
这取决于细节,细节决定成败。小心处理时间。
答案 1 :(得分:0)
使用Powershell,您可以执行以下操作:
Get-TimeZone
Set-TimeZone "India Standard Time"
Get-TimeZone
答案 2 :(得分:0)
对于 Windows Powershell 和 Linux Bash 的其他回复, Mac OSX 代理(例如 xcode 或 Xamarin.iOS 应使用以下脚本设置时区:
- task: Bash@3
displayName: Set Mac OS X Timezone
inputs:
targetType: 'inline'
script: sudo systemsetup -settimezone Asia/Shanghai