2011-02-15 16 views

cevap

46

Sen birim test çerçevesinde "test başlatıcısı" olarak işaretlenmiş yöntemde

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

ayarlayabilirsiniz.

+2

bunu, belirli bir kültürün olmasını istediğiniz yöntemden hemen önce ayarlayabilirsiniz, yapmanız gerekmez. test kurulumunda. ve sadece bir test için ayarlamanız gerekirse, istemeyebilirsiniz. –

+0

Bu türden bir cevaba cevap vermek konusunda gerçekten ihtiyatlıyım, ama bunun CurrentCulture değil "Thread.CurrentThread.CurrentUICulture" olması gerektiğine inanıyorum. CurrentUICulture için Intellisense, “Çalışmakta olan zamana göre kültüre özgü kaynakları aramak için Resource Manager tarafından kullanılan mevcut kültürü alır veya ayarlar.” Sınamalarım, bir "fr-FR" kültür kaynağına karşı test kullanırken başarısız olur. CurrentCulture, ancak CurrentUICulture kullanırken geçiş yapın. –

+0

web.config, ile her iki kültürün de belirtilmesine izin verir. Gerçek uygulamada kullandığınız özelliklere bağlı olarak, birim testi için uygun özelliği ayarlayabilirsiniz. Özgün sorular kültürden bahsetmektedir, uiCulture değil, ama bu yorumlamaya tabidir. –

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

Web.config dosyasında, örneğinizde çalışacak olana benzer bir ayar yoktur.

Diğer yanıtların önerdiği gibi her iş parçacığı için ayarlamayı deneyebilirsiniz.

Alternatif olarak, VS.NET'te oluşturulmuş kaynakları kullanıyorsanız kod oluşturma, 'Culture' adı verilen Kaynak sınıfında statik bir özellik oluşturur. Bunu, birim testinizin Suite başlangıç ​​yönteminde ayarlayabilirsiniz. Bu, çalıştırdığınız tüm testlere uygulanacaktır. Eğer xUnit kullanıyorsanız burada tanımlanan

2

belirtmek istiyorum Tüm Test Suite'iniz için'u,her TestInitializer'a eklemeniz gerekmeden AssemblyInitializeAttribute kullanabilirsiniz.

, yeni TestClass oluşturun DefaultThreadCurrentCulture ve DefaultThreadCurrentUICulture setleri buna bir statik yöntemi ekleyin ve sonra AssemblyInitialzeAttribute ile bu yöntemi süsleyin. Bu yöntem, herhangi bir TestMethods çalıştırılmadan önce test takımınız başladığında bir kez çalıştırılacaktır. (Not: Bu özellik ile test yönteminizde yalnızca bu tür bir yöntemle dekore edilmiş bir yönteminiz olabilir.)

İlgili konular