Azure devops 是否有方法更改visual studio团队服务中的默认线程区域性

Azure devops 是否有方法更改visual studio团队服务中的默认线程区域性,azure-devops,azure-pipelines,region,vstest,currentculture,Azure Devops,Azure Pipelines,Region,Vstest,Currentculture,我在美国地区有一个VSTS帐户。我有一系列的单元测试,它们在我的本地服务器上成功运行。但是当部署到VST时,所有与日期时间相关的测试都失败了。我想这是因为日期时间格式的解释不同,因为我的本地人使用的是英国格式。因为有相当多的测试项目,而不是单独更改它,有没有办法将VSTS默认线程的当前区域性更改为UK?我知道改变区域可能会起到作用,但还有其他方法吗?当然,有很多可能,但最好是确保应用程序正确处理意外部署到具有不同区域性的计算机上的情况 基本上,您已经发现了代码的意外和不需要的行为,或者您已经检测

我在美国地区有一个VSTS帐户。我有一系列的单元测试,它们在我的本地服务器上成功运行。但是当部署到VST时,所有与日期时间相关的测试都失败了。我想这是因为日期时间格式的解释不同,因为我的本地人使用的是英国格式。因为有相当多的测试项目,而不是单独更改它,有没有办法将VSTS默认线程的当前区域性更改为UK?我知道改变区域可能会起到作用,但还有其他方法吗?

当然,有很多可能,但最好是确保应用程序正确处理意外部署到具有不同区域性的计算机上的情况

基本上,您已经发现了代码的意外和不需要的行为,或者您已经检测到无法在不同的文化中运行

我个人会努力使代码更具弹性,例如,显式地设置正确的区域性,并尽可能地依赖不变量区域性

如果您想要简单的解决方法,可以执行以下操作之一:

使用初始值设定项 向测试项目添加一种方法,然后:

强制用户配置文件区域性设置 我建议您不要这样做,虽然它不应该这样做,但它可能会影响测试后运行的其他进程、更改输出格式或导致其他不必要的行为,类似于您现在所经历的

数据存储在注册表中的以下位置:

HKEY_CURRENT_USER\Control Panel\International
您需要在启动测试之前更改该值,因为这些值是在启动应用程序时从系统读取的,除非您正在注册这些值更改时要发出信号的事件,否则您的测试将不会看到差异

在测试开始之前,在生成定义中运行脚本

Set-Culture -CultureInfo en-GB

谢谢jessehouwing的回答,我更喜欢第二个建议,因为第一个建议对于测试项目/课程的数量来说太多了。但是,由于我在线使用VST,我想我不能做这样的事情?ThanksPowershell可以通过覆盖生成代理用户的现有值来更改区域设置。但是,请修复您的测试。是的,正如您所了解的,我添加了一个powershell脚本来在运行单元测试之前更改区域性,现在它可以工作了。我应该修复测试,但那是以后的事了,非常感谢。分享脚本会很有帮助。请随意编辑我的答案并添加它。
Set-Culture -CultureInfo en-GB