Msbuild NUnit test runner使用“文化”;“美国”;而操作系统区域设置为;";
我正在Windows Server 2008上运行的一个新的Bambol实例(5.1.0.3901)上设置构建 NUnit测试运行程序通过MSBuild启动以运行测试。我的一些测试在我的机器和另一台服务器上运行正常,但现在失败了。显然,所有这些测试都依赖于区域设置。据我所知,它们要么通过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-
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多个测试项目,我仍然更喜欢更高级别的设置,所以我不会接受答案(现在)。