Csharp/C#教程:C#如何强制本地化文化进入测试项目的en-US分享


C#如何强制本地化文化进入测试项目的en-US

如何在VS2008中为C#中的测试项目指定concrente Localization Culture? 我正在构建具有web.config中指定的非标准文化的Asp .Net MVC应用程序但是如何为该项目的unit testing设置相同的文化?

你可以设置

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"); 

在unit testing框架中标记为“test initializer”的方法中。

如果您正在使用xUnit,则可以将UseCultureAttribute添加到项目中,如下所示:

https://github.com/xunit/samples.xunit/blob/master/UseCulture/UseCultureAttribute.cs

要使用它:

 [Fact] [UseCulture("en-US")] public void MyTest() { // ... } 

 System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("en-US"); System.Threading.Thread.CurrentThread.CurrentCulture = ci; 

如果要为整个Test Suite指定CultureInfo而不必将其添加到每个TestClassTestInitializer中,则可以使用AssemblyInitializeAttribute 。

创建一个新的TestClass ,向其添加一个静态方法,设置DefaultThreadCurrentCultureDefaultThreadCurrentUICulture ,然后使用AssemblyInitialzeAttribute修饰该方法。 在运行任何TestMethod之前,在测试套件启动时,此方法将运行一次。 (注意:在测试套件中,您可能只有一个这样的方法用这个属性修饰。)

没有类似于web.config中的设置,它将适用于您的情况。

你可以尝试为每个线程设置它,如其他答案所示。

或者,如果您使用在VS.NET中创建的资源,代码生成会在Resource类上创建一个名为“Culture”的静态属性。 您可以在unit testing的Suite启动方法中设置它。 这将适用于您运行的所有测试。

上述就是C#学习教程:C#如何强制本地化文化进入测试项目的en-US分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1015445.html

(0)
上一篇 2021年12月30日
下一篇 2021年12月30日

精彩推荐