2011-02-15 22 views

回答

46

你可以設置

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

被標記爲您的單元測試框架「測試初始化​​」。

+2

你可以在你想要的特定文化的調用方法之前設置它,你不需要做它在測試設置中。如果你只需要設置一個測試,你可能不想。 – 2012-10-29 15:56:49

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

沒有一個類似於web.config中的設置,將在你的情況下工作。

您可以嘗試爲每個線程設置它,如其他答案中的建議。

或者,如果您使用的是VS.NET中創建的資源,代碼生成將在資源類上創建一個名爲'Culture'的靜態屬性。你可以在你的單元測試的Suite啓動方法中設置它。這將適用於您運行的所有測試。

2

如果要指定CultureInfo爲您的整個測試套件,而無需將其添加到每個TestClassTestInitializer中,您可以使用AssemblyInitializeAttribute

創建一個新的TestClass,添加一個靜態方法將其用於設置DefaultThreadCurrentCultureDefaultThreadCurrentUICulture,然後是裝飾用的方法AssemblyInitialzeAttribute。在運行任何TestMethods之前,當您的測試套件啓動時,此方法將運行一次。 (注意:你的測試套件中可能只有一個這樣的方法用這個屬性裝飾)。