NUnit 测试运行程序在操作系统区域设置"de-DE"时使用区域性"en-US"



我正在Windows Server 2008上运行的新奔步实例(5.1.0.3901)上设置构建。

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

我已经登录了Thread.CurrentThread.CurrentUICulture("en-US")和Thread.CurrentThread.CurrentCulture("de-DE")。

操作系统区域设置设置为 "de-DE"。

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

NUnit 具有 SetUpFixture 属性

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

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

但是,由于您似乎有很多单元测试,因此在代码库中进行DateTime.Parse更改不应该真正打扰您......

最新更新