如何确保在所有Visual Studio单元测试中使用不变文化?

时间:2018-04-23 20:46:15

标签: visual-studio unit-testing culture

开发人员在“十进制逗号”和“小数点”区域设置中使用我们的解决方案。我们使用Visual Studio的内置单元测试引擎。我怎样才能确保测试在两个语言环境中都使用不变文化,而不必在整个地方插入IFormatProviders?这是为了防止在我们的某个区域设置中使用string.Format浮点数检查计算结果的所有测试都失败。

1 个答案:

答案 0 :(得分:0)

为所有单元测试和设置集线程的当前文化创建公共基类:

Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture;

(基础夹具的常见设置在MSTest和NUnit中都有效)。

如果您的代码可以生成新线程,您还可以set the default culture for new threads(需要.NET 4.5):

CultureInfo.DefaultThreadCurrentCulture = CultureInfo.InvariantCulture;
CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.InvariantCulture;