Msbuild NUnit test runner使用“文化”;“美国”;而操作系统区域设置为;";

Msbuild NUnit test runner使用“文化”;“美国”;而操作系统区域设置为;";,msbuild,nunit,windows-server-2008,bamboo,Msbuild,Nunit,Windows Server 2008,Bamboo,我正在Windows Server 2008上运行的一个新的Bambol实例(5.1.0.3901)上设置构建 NUnit测试运行程序通过MSBuild启动以运行测试。我的一些测试在我的机器和另一台服务器上运行正常,但现在失败了。显然,所有这些测试都依赖于区域设置。据我所知,它们要么通过DateTime.parse(string)解析日期字符串,要么将语言相关的错误消息与德语硬编码的预期消息进行比较 我已经记录了Thread.CurrentThread.CurrentUICulture(“en-

我正在Windows Server 2008上运行的一个新的Bambol实例(5.1.0.3901)上设置构建

NUnit测试运行程序通过MSBuild启动以运行测试。我的一些测试在我的机器和另一台服务器上运行正常,但现在失败了。显然,所有这些测试都依赖于区域设置。据我所知,它们要么通过
DateTime.parse(string)
解析日期字符串,要么将语言相关的错误消息与德语硬编码的预期消息进行比较

我已经记录了
Thread.CurrentThread.CurrentUICulture
(“en-US”)和
Thread.CurrentThread.CurrentCulture
(“de-de”)

操作系统区域设置列表设置为“de”


如何在不改变这些测试的情况下使其通过?因为它们太多了,我更愿意配置NUnit(或MSBuild或Bambol)以“de de”运行所有内容。

NUnit具有
SetUpFixture
属性

标记一个类,该类包含给定命名空间下所有测试装置的一次性设置或拆卸方法。该类最多可以包含一个用SetUpAttribute标记的方法和一个用TearDownAttribute标记的方法

我认为这是在运行测试之前设置
Thread.CurrentThread.CurrentUICulture
Thread.CurrentThread.CurrentCulture
的最全局设置机会。这可能是一个短期的事情,可以帮助你

但是,既然您似乎有很多单元测试,那么在代码库中进行
DateTime.Parse
更改就不会真正困扰您了……

DateTime.Parse()调用也在测试中。但是+1用于提及
SetUpFixture
!我只知道一个方法的
TestFixtureSetUp
,该方法在fixture中的第一个测试运行之前运行一次。因为我有20多个测试项目,我仍然更喜欢更高级别的设置,所以我不会接受答案(现在)。